PX-100 Arm ROS2 Setup
How do I set up the PX-100 arm to work with ROS2?
Question
How do I set up the PX-100 arm to work with ROS2?
Answer
Introduction
The PX-100 arm currently supports ROS2 Galactic on Ubuntu Linux 20.04, or ROS2 Humble on Ubuntu Linux 22.04. This is unlikely to change in the future, as Trossen Robotics seems to have stopped working further on the PX-100.
This guide assumes you will be using ROS2 Humble on Ubuntu Linux 22.04. If you need to, it wouldn't be too hard to adapt the instructions here for a setup on ROS2 Galactic.
Install Ubuntu
Follow these official instructions, or others you might find on the web, to install Ubuntu Linux 22.04 on your computer. You might meet with a few hiccups along the way, e.g., about Ubuntu being incompatible with RST, etc. When you do, don't panic, and search for the simplest solution to the problem.
Check for Hardware Compatibility
Plug in the arm to a usb port of your computer. After waiting for a bit, run the lsusb
command to see the USB devices connected to your computer. If you see something like:
as a line in your output, your computer is probably compatible with the arm.
Install ROS2 Humble, colcon
, and rosdep
colcon
, and rosdep
First, install ROS2 Humble. The official guide is good. The only recommendation I'd make is to add source /opt/ros/humble/setup.bash
to your .bashrc
file (if you're using a BASH shell. To see whether you are, run echo $SHELL
. If the output is /bin/bash
, you're using BASH).
Second, install colcon, ROS2's build tool.
Third, install rosdep. Run:
Then execute
Install Interbotix's Software for ROS2
Finally, it's time to install software for the PX-100 arm. Execute:
If you're using galactic, replace 'humble' with 'galactic' in the last line.
After installation, follow these Installation Checks from Trossen Robotics, to confirm that your installation was successful.
Checking that Things Work as Expected
Execute the following line:
This should launch an RVIZ window displaying a graphical representation of your arm. Don't panic if you don't get the arm on the first try, and there are white blocks where components of the robot should be. Try closing rviz, and running the command again.
If this still doesn't work, check to see if the arm is in the sleeping position. If it isn't, unplug the arm, and gently move it into the sleeping position.
Even if the arm is in a sleeping position, unplug, and then replug the arm.
Run the command above again. It should have worked this time. If it still doesn't, there was probably something wrong with the installation process. Or the hardware of the arm is incompatible with your computer for mysterious reasons.
If rviz does work, execute the following command:
This command disables the mechanisms on the robot that keep its joints fixed in their positions. This means that you should be able to move the robot's joints manually. Try this, GENTLY, and see the graphical representation of the robot on RVIZ move in tandem.
After you're satisfied with your experiment, place the robot back into its sleeping position, and quit the two ros2 processes you started.
Next Steps
The documentation for Interbotix's ROS2 API is very lacking. If you're curious about something, try searching our lab notes first to see if you can find what you're looking for.
Otherwise, dig into the source code, installed under the interbotix_ws
directory. The directory's path is likely ~/interbotix_ws
. Don't be afraid to do this! It's what you'll have to do anyway if you join a company or work on a substantial open source project. Don't be afraid to modify the source code either, if you feel it's not working as it should! The developers are only human, and may have made mistakes.
Last updated