It works a treat! I have up on the package manager as I’m new to Arch Linux but installing Noetic using RoboShack and its worked a treat!
I got my Turtlebot 3 up and running, got teleop working using the built in controllers, and fired up the SLAM package on the Deck and it’s worked an absolute treat!
I’m running a StereoPi board on the Turtlebot, tomorrow I’m going to try and get the stereo cameras working and see if I can generate a 3d map on here.
Nice one, I’ve been waiting for someone to try this and share their thoughts!
I think it seems like a fantastic candidate for development especially for educational contexts as you can (I believe) set it up to boot off the SD card and it could become like a Raspberry Pi. The Deck hardware could be owned by an institution, students could be provided with an SD card preimaged with what is needed, develop on the deck while docked, then unplug it and drive/monitor a robot. You could even imagine supplying 2x paired SD cards, one for a Pi in the robot and one for the Deck.
I’m keen to give it a go once they become available in Australia, but I think we could be waiting a long time…
I’d hoped for similar when the Switch was announced but sadly Nintendo are dead against any kind of homebrew so that put an end to that. I am intrigued by running Windows on it to be honest and booting from Micro SD would save installing it if it didn’t work out. I have a Windows Mixed Reality Headset and I’ve been aiming to get ROS in to Unity to see if I can make use of it.
Toby is simultaneously afraid of nothing and freaked out by the smallest sounds, we’re pretty certain he’s actually five or six identical cats that live with us and we only see one at a time. It’d explain the different personalities at least!
Hmm, not sure what’s happened there to be honest, I’ll fire up my Deck later and have a look. Pretty sure I just needed to activate the env and it was good to go. I may have changed something without realising it though.
Also, a guide to install jsk_rviz_plugins is included (this package is available in robostack, but it is somehow incorrectly built, so it’s impossible to install it via mamba).
I’ve given installing Ubuntu 20.04 on the Deck a shot, but I had quite a bit of issues with the device being in a lizard mode by default. I’ll try to give your approach a shot soon!
In case anyone is reading this and wants to run ROS2 on a steam deck and is having trouble accessing the joystick values, I have a solution. Instead of making a new post, it seemed better to put this in the thread that pops up when you look up how to do this.
I’m running ROS2-Humble in an Ubuntu 22.04 distrobox container. That’s all well and good but the joy node that comes with Humble just would not run without erroring, and even then, accessing /dev/input/js0 is difficult in the steam deck.
The trick for me was to go into Steam Settings → Controller → Non Game Controller Layouts → Desktop Layout and set the layout to “Gamepad with Mouse Trackpad”.
Then you should be able to read /dev/input/js0 for the joystick data. I then used pygame in order to access the joystick and publish it on a joystick topic. Not sure if this was really simple for everyone else but I couldn’t find concrete ways to access joystick data anywhere, and everyone else’s tutorials didn’t work for me. Hope this helps someone.
def get_joystick_input(self):
pygame.init()
pygame.joystick.init()
# Assuming that you have only one joystick connected
joystick = pygame.joystick.Joystick(0)
joystick.init()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done=True
elif event.type == pygame.JOYBUTTONDOWN:
print("Joystick button pressed.")
elif event.type == pygame.JOYBUTTONUP:
print("Joystick button released.")
axes = []
for i in range(joystick.get_numaxes()):
axes.append(joystick.get_axis(i))
buttons = []
for i in range(joystick.get_numbuttons()):
buttons.append(joystick.get_button(i))
joy = Joy()
joy.axes = axes
joy.buttons = buttons
self.publisher_.publish(joy)