Manipulation
NOTE:
- This instructions were tested on
Ubuntu 16.04
andROS Kinetic Kame
. - If you want more specfic information about OpenMANIPULATOR-X, please refer to the OpenMANIPULATOR-X e-Manual.
WARNING
Raspberry Pi 4
and Jetson Nano
do not support Kinetic. Please select other ROS or ROS2 distributions based on supported Ubuntu versions.
The contents in e-Manual are subject to be updated without a prior notice. Therefore, some video may differ from the contents in e-Manual.
TIP: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen. The shortcut key for running the terminal is Ctrl
-Alt
-T
.
NOTE:
- This instructions were tested on
Ubuntu 18.04
andROS Melodic Morenia
. - If you want more specfic information about OpenMANIPULATOR-X, please refer to the OpenMANIPULATOR-X e-Manual.
The contents in e-Manual are subject to be updated without a prior notice. Therefore, some video may differ from the contents in e-Manual.
TIP: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen. The shortcut key for running the terminal is Ctrl
-Alt
-T
.
NOTE:
- This instructions were tested on
Ubuntu 20.04
andROS Noetic Ninjemys
. - If you want more specfic information about OpenMANIPULATOR-X, please refer to the OpenMANIPULATOR-X e-Manual.
The contents in e-Manual are subject to be updated without a prior notice. Therefore, some video may differ from the contents in e-Manual.
TIP: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen. The shortcut key for running the terminal is Ctrl
-Alt
-T
.
NOTE:
- This instructions were tested on
Ubuntu 18.04
andROS2 Dashing Diademata
. - More information on OpenMANIPULATOR-X is availabe at OpenMANIPULATOR-X e-Manual.
The contents in e-Manual are subject to change without prior notice. Therefore, some video may differ from the contents in e-Manual.
TIP: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen.
The shortcut key for opening the terminal is Ctrl
-Alt
-T
.
NOTE:
- This instructions were tested on
Ubuntu 20.04
andROS2 Foxy Fitzroy
. - More information on OpenMANIPULATOR-X is availabe at OpenMANIPULATOR-X e-Manual.
The contents in e-Manual are subject to change without prior notice. Therefore, some video may differ from the contents in e-Manual.
TIP: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen.
The shortcut key for opening the terminal is Ctrl
-Alt
-T
.
NOTE:
- This instructions were tested on
Ubuntu 22.04
andROS2 Humble Hawksbill
. - More information on OpenMANIPULATOR-X is availabe at OpenMANIPULATOR-X e-Manual.
The contents in e-Manual are subject to change without prior notice. Therefore, some video may differ from the contents in e-Manual.
TIP: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen.
The shortcut key for opening the terminal is Ctrl
-Alt
-T
.
NOTE: This feature in the selected ROS distribution is not available yet.
TurtleBot3 with OpenMANIPULATOR
The OpenMANIPULATOR-X by ROBOTIS is one of the manipulators that support ROS, and has the advantage of being able to easily manufacture at a low cost by using DYNAMIXEL actuators with 3D printed parts.
The OpenMANIPULATOR-X has the advantage of being compatible with TurtleBot3 Waffle and Waffle Pi. Through this compatibility can compensate for the lack of freedom and can have greater completeness as a service robot with the the SLAM and Navigation capabilities that the TurtleBot3 has. TurtleBot3 and OpenMANIPULATOR-X can be used as a mobile manipulator
and can do things like the following videos.
The contents in e-Manual are subject to change without prior notice. Therefore, some video may differ from the contents in e-Manual.
The OpenMANIPULATOR-X by ROBOTIS is one of the manipulators that support ROS, and has the advantage of being able to easily manufacture at a low cost by using DYNAMIXEL actuators with 3D printed parts.
The OpenMANIPULATOR-X has the advantage of being compatible with TurtleBot3 Waffle and Waffle Pi. Through this compatibility can compensate for the lack of freedom and can have greater completeness as a service robot with the the SLAM and Navigation capabilities that the TurtleBot3 has. TurtleBot3 and OpenMANIPULATOR-X can be used as a mobile manipulator
and can do things like the following videos.
The contents in e-Manual are subject to change without prior notice. Therefore, some video may differ from the contents in e-Manual.
The OpenMANIPULATOR-X by ROBOTIS is one of the manipulators that support ROS, and has the advantage of being able to easily manufacture at a low cost by using DYNAMIXEL actuators with 3D printed parts.
The OpenMANIPULATOR-X has the advantage of being compatible with TurtleBot3 Waffle and Waffle Pi. Through this compatibility can compensate for the lack of freedom and can have greater completeness as a service robot with the the SLAM and Navigation capabilities that the TurtleBot3 has. TurtleBot3 and OpenMANIPULATOR-X can be used as a mobile manipulator
and can do things like the following videos.
The contents in e-Manual are subject to be updated without a prior notice. Therefore, some video may differ from the contents in e-Manual.
The OpenMANIPULATOR-X by ROBOTIS is one of the manipulators that support ROS platform, and has the advantage of being able to easily manufacture at a low cost by using DYNAMIXEL actuators with 3D printed parts.
The OpenMANIPULATOR-X has the advantage of being compatible with TurtleBot3 Waffle and Waffle Pi. Through this compatibility can compensate for the lack of freedom and can have greater completeness as a service robot with the the SLAM and Navigation capabilities that the TurtleBot3 has. TurtleBot3 and OpenMANIPULATOR-X can be used as a mobile manipulator
and can do things like the following videos.
fds
The contents in e-Manual are subject to change without prior notice. Therefore, some video may differ from the contents in e-Manual.
The OpenMANIPULATOR-X by ROBOTIS is one of the manipulators that support ROS platform, and has the advantage of being able to easily manufacture at a low cost by using DYNAMIXEL actuators with 3D printed parts.
The OpenMANIPULATOR-X has the advantage of being compatible with TurtleBot3 Waffle and Waffle Pi. Through this compatibility can compensate for the lack of freedom and can have greater completeness as a service robot with the the SLAM and Navigation capabilities that the TurtleBot3 has. TurtleBot3 and OpenMANIPULATOR-X can be used as a mobile manipulator
and can do things like the following videos.
fds
The contents in e-Manual are subject to change without prior notice. Therefore, some video may differ from the contents in e-Manual.
The OpenMANIPULATOR-X by ROBOTIS is one of the manipulators that support ROS platform, and has the advantage of being able to easily manufacture at a low cost by using DYNAMIXEL actuators with 3D printed parts.
The OpenMANIPULATOR-X has the advantage of being compatible with TurtleBot3 Waffle and Waffle Pi. Through this compatibility can compensate for the lack of freedom and can have greater completeness as a service robot with the the SLAM and Navigation capabilities that the TurtleBot3 has. TurtleBot3 and OpenMANIPULATOR-X can be used as a mobile manipulator
and can do things like the following videos.
fds
The contents in e-Manual are subject to change without prior notice. Therefore, some video may differ from the contents in e-Manual.
NOTE: This feature in the selected ROS distribution is not available yet.
Software Setup
NOTE: Before installing the open_manipulator_with_tb3
package, install turtlebot3
and open_manipulator
packages on the Remote PC.
- [Remote PC] Download and build the package using the following commands in order to use assembled OpenMANIPULATOR-X.
$ cd ~/catkin_ws/src/
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_manipulation.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_manipulation_simulations.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_dependencies.git
$ sudo apt install ros-kinetic-ros-control* && ros-kinetic-control* && ros-kinetic-moveit*
$ cd ~/catkin_ws && catkin_make
NOTE: Before installing the open_manipulator_with_tb3
package, install turtlebot3
and open_manipulator
packages on the Remote PC.
- [Remote PC] Download and build the package using the following commands in order to use assembled OpenMANIPULATOR-X.
$ cd ~/catkin_ws/src/
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_manipulation.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_manipulation_simulations.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_dependencies.git
$ sudo apt install ros-melodic-ros-control* && ros-melodic-control* && ros-melodic-moveit*
$ cd ~/catkin_ws && catkin_make
NOTE: Before installing the open_manipulator_with_tb3
package, install turtlebot3
and open_manipulator
packages on the Remote PC.
- [Remote PC] Download and build the package using the following commands in order to use assembled OpenMANIPULATOR-X.
$ cd ~/catkin_ws/src/
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_manipulation.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_manipulation_simulations.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_dependencies.git
$ sudo apt install ros-noetic-ros-control* ros-noetic-control* ros-noetic-moveit*
$ cd ~/catkin_ws && catkin_make
NOTE: Be sure to install turtlebot3
and open_manipulator
packages, before installation of open_manipulator_with_tb3
packages.
- Install dependent packages for the OpenMANIPULATOR with TurtleBot3.
[TurtleBot3]
- Open a terminal on TurtleBot3.
- Install dependent packages using the following commands.
$ cd ~/turtlebot3_ws/src/ $ git clone -b ros2 https://github.com/ROBOTIS-GIT/open_manipulator_with_tb3.git $ cd ~/turtlebot3_ws && colcon build --symlink-install
[Remote PC]
- Open a terminal on Remote PC.
- Install dependent packages using the following commands.
$ cd ~/robotis_ws/src/ $ git clone -b ros2 https://github.com/ROBOTIS-GIT/open_manipulator_with_tb3.git $ cd ~/robotis_ws && colcon build --symlink-install
- If
colcon build
command is complete without any errors, go to the step 3.
- If
- Load TurtleBot3 Waffle (or Waffle Pi) with OpenMANIPULATOR on RViz.
- Open a terminal on Remote PC.
- Execute RViz using the following command.
$ ros2 launch turtlebot3_manipulation_description turtlebot3_manipulation_rviz.launch.py
NOTE: TurtleBot3 Manipulation for ROS2 Foxy requires turtlebot3_manipulation
package.
Follow the instructions below to install the required package and its dependencies.
[TurtleBot3]
- Connect to the Raspberry Pi of the TurtleBot3 using ssh command below.
$ ssh ubuntu@{IP_ADDRESS_OF_TURTLEBOT3}
- Install packages for TurtleBot3 Manipulation.
$ cd ~/turtlebot3_ws/src/ $ git clone -b foxy-devel https://github.com/ROBOTIS-GIT/turtlebot3_manipulation.git $ cd ~/turtlebot3_ws && colcon build --symlink-install
[Remote PC]
- Open a terminal on Remote PC.
- Install dependent packages using the following commands.
$ sudo apt install ros-foxy-dynamixel-sdk ros-foxy-ros2-control ros-foxy-ros2-controllers ros-foxy-gripper-controllers ros-foxy-moveit $ cd ~/turtlebot3_ws/src/ $ git clone -b foxy-devel https://github.com/ROBOTIS-GIT/turtlebot3_manipulation.git $ cd ~/turtlebot3_ws && colcon build --symlink-install
NOTE: TurtleBot3 Manipulation for ROS2 Humble requires turtlebot3_manipulation
package.
Follow the instructions below to install the required package and its dependencies.
[TurtleBot3]
- Connect to the Raspberry Pi of the TurtleBot3 using ssh command below.
$ ssh ubuntu@{IP_ADDRESS_OF_TURTLEBOT3}
- Install packages for TurtleBot3 Manipulation.
$ cd ~/turtlebot3_ws/src/ $ git clone -b humble-devel https://github.com/ROBOTIS-GIT/turtlebot3_manipulation.git $ cd ~/turtlebot3_ws && colcon build --symlink-install
[Remote PC]
- Open a terminal on Remote PC.
- Install dependent packages using the following commands.
$ sudo apt install ros-humble-dynamixel-sdk ros-humble-ros2-control ros-humble-ros2-controllers ros-humble-gripper-controllers ros-humble-moveit $ cd ~/turtlebot3_ws/src/ $ git clone -b humble-devel https://github.com/ROBOTIS-GIT/turtlebot3_manipulation.git $ cd ~/turtlebot3_ws && colcon build --symlink-install
NOTE: This feature in the selected ROS distribution is not available yet.
Hardware Assembly
- CAD files (TurtleBot3 Waffle Pi + OpenMANIPULATOR)
- Remove the
LDS-01
orLDS-02
LiDAR sensor and install it in the front of TurtleBot3.
Red circles represent recommended bolt holes. - Install the
OpenMANIPULATOR-X
on the TurtleBot3.
Yellow circles represent recommended bolt holes.
OpenCR Setup
NOTE: To use OpenMANIPULATOR-X, you need to upload a firmware into OpenCR by using either shell script or Arduino IDE.
- Shell script is highly recommended to upload the firmware as it uses a pre-built binary file
- Arduino IDE builds from the provided source code and uploads the generated binary file.
The OpenCR Arduino board manager does not support ARM based processors such as Raspberry Pi or Jetson Nano.
WARNING
Please connect all DYNAMIXEL modules to the OpenCR before uploading the OpenCR firmware.
After OpenMANIPULATOR is properly mounted on TurtleBot3, the OpenCR firmware needs to be updated to control connected DYNAMIXEL. Please follow the firmware update instructions below.
- [TurtleBot3 SBC] Download the OpenCR firmware file on Raspberry Pi (SBC) and upload the correct firmware with the following commands.
$ export OPENCR_PORT=/dev/ttyACM0 $ export OPENCR_MODEL=om_with_tb3 $ rm -rf ./opencr_update.tar.bz2 $ wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2 $ tar -xvf opencr_update.tar.bz2 $ cd ./opencr_update $ ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
- When the firmware is completely uploaded, you will see a text string on the terminal: jump_to_fw
DANGER
Please be aware of pinching your body between the robot joints!!!
When the firmware is successfully uploaded, OpenCR board will reboot and the OpenMANIPULATOR-X will move to the initial pose.
It is recommended to put the OpenMANIPULATOR-X as a similar pose as shown below image to avoid any physical damage during the initial pose.
Arduino IDE
Please be aware that OpenCR board manager does not support Arduino IDE on ARM based SBC such as Raspberry Pi or NVidia Jetson.
In order to upload the OpenCR firmware using Arduino IDE, please follow the below instructions on your PC.
Click here to expand more details about the firmware upload using Arduino IDE
- If you are using Linux, please configure the USB port for OpenCR. For other OS(OSX or Windows), you can skip this step.
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules $ sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/ $ sudo udevadm control --reload-rules $ sudo udevadm trigger $ sudo apt install libncurses5-dev:i386
- Install Arduino IDE.
-
After completing the installation, run Arduino IDE.
-
Press
Ctrl
+,
to open the Preferences menu - Enter below address in the
Additional Boards Manager URLs
.https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
- Open the TurtleBot3 with OpenMANIPULATOR firmware.
- TurtleBot3 with OpenMANIPULATOR : File > Examples > turtlebot3 > turtlebot3_with_open_manipulator > turtlebot3_with_open_manipulator_core
-
Connect OpenCR to the PC and Select OpenCR > OpenCR Board from Tools > Board menu.
-
Select the OpenCR connected USB port from Tools > Port menu.
-
Upload the TurtleBot3 firmware sketch with
Ctrl
+U
or the upload icon.
- If firmware upload fails, try uploading with the recovery mode. Below sequence activates the recovery mode of OpenCR. Under the recovery mode, the
STATUS
led of OpenCR will blink periodically.- Hold down the
PUSH SW2
button. - Press the
Reset
button. - Release the
Reset
button. - Release the
PUSH SW2
button.
- Hold down the
NOTE: To use OpenMANIPULATOR-X, you need to upload a firmware into OpenCR by using either shell script or Arduino IDE.
- Shell script is highly recommended to upload the firmware as it uses a pre-built binary file
- Arduino IDE builds from the provided source code and uploads the generated binary file.
The OpenCR Arduino board manager does not support ARM based processors such as Raspberry Pi or Jetson Nano.
WARNING
Please connect all DYNAMIXEL modules to the OpenCR before uploading the OpenCR firmware.
After OpenMANIPULATOR is properly mounted on TurtleBot3, the OpenCR firmware needs to be updated to control connected DYNAMIXEL. Please follow the firmware update instructions below.
- [TurtleBot3 SBC] Download the OpenCR firmware file on Raspberry Pi (SBC) and upload the correct firmware with the following commands.
$ export OPENCR_PORT=/dev/ttyACM0 $ export OPENCR_MODEL=om_with_tb3 $ rm -rf ./opencr_update.tar.bz2 $ wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2 $ tar -xvf opencr_update.tar.bz2 $ cd ./opencr_update $ ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
- When the firmware is completely uploaded, you will see a text string on the terminal: jump_to_fw
DANGER
Please be aware of pinching your body between the robot joints!!!
When the firmware is successfully uploaded, OpenCR board will reboot and the OpenMANIPULATOR-X will move to the initial pose.
It is recommended to put the OpenMANIPULATOR-X as a similar pose as shown below image to avoid any physical damage during the initial pose.
Arduino IDE
Please be aware that OpenCR board manager does not support Arduino IDE on ARM based SBC such as Raspberry Pi or NVidia Jetson.
In order to upload the OpenCR firmware using Arduino IDE, please follow the below instructions on your PC.
Click here to expand more details about the firmware upload using Arduino IDE
- If you are using Linux, please configure the USB port for OpenCR. For other OS(OSX or Windows), you can skip this step.
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules $ sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/ $ sudo udevadm control --reload-rules $ sudo udevadm trigger $ sudo apt install libncurses5-dev:i386
- Install Arduino IDE.
-
After completing the installation, run Arduino IDE.
-
Press
Ctrl
+,
to open the Preferences menu - Enter below address in the
Additional Boards Manager URLs
.https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
- Open the TurtleBot3 with OpenMANIPULATOR firmware.
- TurtleBot3 with OpenMANIPULATOR : File > Examples > turtlebot3 > turtlebot3_with_open_manipulator > turtlebot3_with_open_manipulator_core
-
Connect OpenCR to the PC and Select OpenCR > OpenCR Board from Tools > Board menu.
-
Select the OpenCR connected USB port from Tools > Port menu.
-
Upload the TurtleBot3 firmware sketch with
Ctrl
+U
or the upload icon.
- If firmware upload fails, try uploading with the recovery mode. Below sequence activates the recovery mode of OpenCR. Under the recovery mode, the
STATUS
led of OpenCR will blink periodically.- Hold down the
PUSH SW2
button. - Press the
Reset
button. - Release the
Reset
button. - Release the
PUSH SW2
button.
- Hold down the
NOTE: To use OpenMANIPULATOR-X, you need to upload a firmware into OpenCR by using either shell script or Arduino IDE.
- Shell script is highly recommended to upload the firmware as it uses a pre-built binary file
- Arduino IDE builds from the provided source code and uploads the generated binary file.
The OpenCR Arduino board manager does not support ARM based processors such as Raspberry Pi or Jetson Nano.
WARNING
Please connect all DYNAMIXEL modules to the OpenCR before uploading the OpenCR firmware.
After OpenMANIPULATOR is properly mounted on TurtleBot3, the OpenCR firmware needs to be updated to control connected DYNAMIXEL. Please follow the firmware update instructions below.
- [TurtleBot3 SBC] Download the OpenCR firmware file on Raspberry Pi (SBC) and upload the correct firmware with the following commands.
$ export OPENCR_PORT=/dev/ttyACM0 $ export OPENCR_MODEL=om_with_tb3_noetic $ rm -rf ./opencr_update.tar.bz2 $ wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2 $ tar -xvf opencr_update.tar.bz2 $ cd ./opencr_update $ ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
- When the firmware is completely uploaded, you will see a text string on the terminal: jump_to_fw
DANGER
Please be aware of pinching your body between the robot joints!!!
When the firmware is successfully uploaded, OpenCR board will reboot and the OpenMANIPULATOR-X will move to the initial pose.
It is recommended to put the OpenMANIPULATOR-X as a similar pose as shown below image to avoid any physical damage during the initial pose.
Arduino IDE
Please be aware that OpenCR board manager does not support Arduino IDE on ARM based SBC such as Raspberry Pi or NVidia Jetson.
In order to upload the OpenCR firmware using Arduino IDE, please follow the below instructions on your PC.
Click here to expand more details about the firmware upload using Arduino IDE
- If you are using Linux, please configure the USB port for OpenCR. For other OS(OSX or Windows), you can skip this step.
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules $ sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/ $ sudo udevadm control --reload-rules $ sudo udevadm trigger $ sudo apt install libncurses5-dev:i386
- Install Arduino IDE.
-
After completing the installation, run Arduino IDE.
-
Press
Ctrl
+,
to open the Preferences menu - Enter below address in the
Additional Boards Manager URLs
.https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
- Open the TurtleBot3 with OpenMANIPULATOR firmware.
- TurtleBot3 with OpenMANIPULATOR : File > Examples > turtlebot3 > turtlebot3_with_open_manipulator > turtlebot3_with_open_manipulator_core
-
Uncomment
#define NOETIC_SUPPORT
onturtlebot3_with_open_manipulator_core.h
, and save it with any name. -
Connect OpenCR to the PC and Select OpenCR > OpenCR Board from Tools > Board menu.
-
Select the OpenCR connected USB port from Tools > Port menu.
-
Upload the TurtleBot3 firmware sketch with
Ctrl
+U
or the upload icon.
- If firmware upload fails, try uploading with the recovery mode. Below sequence activates the recovery mode of OpenCR. Under the recovery mode, the
STATUS
led of OpenCR will blink periodically.- Hold down the
PUSH SW2
button. - Press the
Reset
button. - Release the
Reset
button. - Release the
PUSH SW2
button.
- Hold down the
Note: This feature is available for Foxy.
NOTE: To use OpenMANIPULATOR-X, you need to upload a firmware into OpenCR by using either shell script or Arduino IDE.
- Shell script is highly recommended to upload the firmware as it uses a pre-built binary file
- Arduino IDE builds from the provided source code and uploads the generated binary file.
The OpenCR Arduino board manager does not support ARM based processors such as Raspberry Pi or Jetson Nano.
WARNING
Please connect all DYNAMIXEL modules to the OpenCR before uploading the OpenCR firmware.
After OpenMANIPULATOR-X is properly mounted on TurtleBot3, the OpenCR firmware needs to be updated to control connected DYNAMIXEL. Please follow the firmware update instructions below.
- [TurtleBot3 SBC] Download the OpenCR firmware file on Raspberry Pi (SBC) and upload the correct firmware with the following commands.
$ export OPENCR_PORT=/dev/ttyACM0 $ export OPENCR_MODEL=turtlebot3_manipulation $ rm -rf ./opencr_update.tar.bz2 $ wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS2/latest/opencr_update.tar.bz2 $ tar -xvf opencr_update.tar.bz2 $ cd ./opencr_update $ ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
- When the firmware is successfully uploaded to the OpenCR, jump_to_fw will appear on the terminal.
Arduino IDE
Please be aware that OpenCR board manager does not support Arduino IDE on ARM based SBC such as Raspberry Pi or NVidia Jetson.
In order to upload the OpenCR firmware using Arduino IDE, please follow the below instructions on your PC.
Click here to expand more details about the firmware upload using Arduino IDE
- If you are using Linux, please configure the USB port for OpenCR. For other OS(OSX or Windows), you can skip to the step 2 “Install Arduino IDE”.
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules $ sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/ $ sudo udevadm control --reload-rules $ sudo udevadm trigger $ sudo apt install libncurses5-dev:i386
- Install Arduino IDE.
-
After completing the installation, run Arduino IDE.
-
Press
Ctrl
+,
to open the Preferences menu - Enter below addresses in the
Additional Boards Manager URLs
.https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
-
Select
Sketch > Include Library > Manage Libraries...
to install the DYNAMIXEL2Arduino library. -
Search for
DYNAMIXEL2Arduino
from the Library Manager and install the library. - Open the
TurtleBot3 Manipulation
example.- File > Examples > turtlebot3 > turtlebot3_manipulation > turtlebot3_manipulation
-
Connect the micro USB of the OpenCR to the PC and select Tools > Board > OpenCR > OpenCR Board from Arduino IDE.
-
Select the port connected to the OpenCR from Tools > Port menu.
-
Upload the TurtleBot3 firmware sketch with
Ctrl
+U
or the upload icon.
- If firmware upload fails, try uploading the firmware under the recovery mode. Below sequence activates the recovery mode of OpenCR and the
STATUS
led of OpenCR will blink periodically.- Hold down the
PUSH SW2
button. - Press the
Reset
button. - Release the
Reset
button. - Release the
PUSH SW2
button.
- Hold down the
NOTE: To use OpenMANIPULATOR-X, you need to upload a firmware into OpenCR by using either shell script or Arduino IDE.
- Shell script is highly recommended to upload the firmware as it uses a pre-built binary file
- Arduino IDE builds from the provided source code and uploads the generated binary file.
The OpenCR Arduino board manager does not support ARM based processors such as Raspberry Pi or Jetson Nano.
WARNING
Please connect all DYNAMIXEL modules to the OpenCR before uploading the OpenCR firmware.
After OpenMANIPULATOR-X is properly mounted on TurtleBot3, the OpenCR firmware needs to be updated to control connected DYNAMIXEL. Please follow the firmware update instructions below.
- [TurtleBot3 SBC] Download the OpenCR firmware file on Raspberry Pi (SBC) and upload the correct firmware with the following commands.
$ export OPENCR_PORT=/dev/ttyACM0 $ export OPENCR_MODEL=turtlebot3_manipulation $ rm -rf ./opencr_update.tar.bz2 $ wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS2/latest/opencr_update.tar.bz2 $ tar -xvf opencr_update.tar.bz2 $ cd ./opencr_update $ ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
- When the firmware is successfully uploaded to the OpenCR, jump_to_fw will appear on the terminal.
Arduino IDE
Please be aware that OpenCR board manager does not support Arduino IDE on ARM based SBC such as Raspberry Pi or NVidia Jetson.
In order to upload the OpenCR firmware using Arduino IDE, please follow the below instructions on your PC.
Click here to expand more details about the firmware upload using Arduino IDE
- If you are using Linux, please configure the USB port for OpenCR. For other OS(OSX or Windows), you can skip to the step 2 “Install Arduino IDE”.
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules $ sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/ $ sudo udevadm control --reload-rules $ sudo udevadm trigger $ sudo apt install libncurses5-dev:i386
- Install Arduino IDE.
-
After completing the installation, run Arduino IDE.
-
Press
Ctrl
+,
to open the Preferences menu - Enter below addresses in the
Additional Boards Manager URLs
.https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
-
Select
Sketch > Include Library > Manage Libraries...
to install the DYNAMIXEL2Arduino library. -
Search for
DYNAMIXEL2Arduino
from the Library Manager and install the library. - Open the
TurtleBot3 Manipulation
example.- File > Examples > turtlebot3 > turtlebot3_manipulation > turtlebot3_manipulation
-
Connect the micro USB of the OpenCR to the PC and select Tools > Board > OpenCR > OpenCR Board from Arduino IDE.
-
Select the port connected to the OpenCR from Tools > Port menu.
-
Upload the TurtleBot3 firmware sketch with
Ctrl
+U
or the upload icon.
- If firmware upload fails, try uploading the firmware under the recovery mode. Below sequence activates the recovery mode of OpenCR and the
STATUS
led of OpenCR will blink periodically.- Hold down the
PUSH SW2
button. - Press the
Reset
button. - Release the
Reset
button. - Release the
PUSH SW2
button.
- Hold down the
NOTE: This feature in the selected ROS distribution is not available yet.
Bringup
NOTE: Be sure that OpenCR port is properly assigned on PC. See turtlebot3_core.launch.
Run roscore
[Remote PC] Run the roscore to use ROS.
$ roscore
Define TurtleBot3 Model
[TurtleBot3 SBC] Export TurtleBot3 model (waffle
or waffle_pi
) if the TURTLEBOT3_MODEL is not defined in the .bashrc
file.
$ export TURTLEBOT3_MODEL=waffle_pi
NOTE: TurtleBot3 Model may differ from the hardware configuration of TurtleBot3 such as burger
or waffle
or waffle_pi
.
Run Bringup
[TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
NOTE: Be sure that OpenCR port is properly assigned on PC. See turtlebot3_core.launch.
Run roscore
[Remote PC] Run the roscore to use ROS.
$ roscore
Define TurtleBot3 Model
[TurtleBot3 SBC] Export TurtleBot3 model (waffle
or waffle_pi
) if the TURTLEBOT3_MODEL is not defined in the .bashrc
file.
$ export TURTLEBOT3_MODEL=waffle_pi
NOTE: TurtleBot3 Model may differ from the hardware configuration of TurtleBot3 such as burger
or waffle
or waffle_pi
.
Run Bringup
[TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
NOTE: Be sure that OpenCR port is properly assigned on PC. See turtlebot3_core.launch.
Run roscore
[Remote PC] Run the roscore to use ROS.
$ roscore
Define TurtleBot3 Model
[TurtleBot3 SBC] Export TurtleBot3 model (waffle
or waffle_pi
) if the TURTLEBOT3_MODEL is not defined in the .bashrc
file.
$ export TURTLEBOT3_MODEL=waffle_pi
NOTE: TurtleBot3 Model may differ from the hardware configuration of TurtleBot3 such as burger
or waffle
or waffle_pi
.
Run Bringup
[TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
Be sure to read Bringup manual before use of the following instruction.
[TurtleBot3]
- Open a terminal on TurtleBot3.
- Launch turtlebot3_manipulation_controller using the following command.
$ ros2 launch turtlebot3_manipulation_controller turtlebot3_manipulation_controller.launch.py
[TurtleBot3]
In order to run a TurtleBot3 Manipulation simulation using Gazebo, please skip to Simulation section.
The following command will bringup the actual TurtleBot3 hardware with OpenMANIPULATOR-X on it.
- Open a terminal from the TurtleBot3 SBC.
- Bring up the TurtleBot3 Manipulation using the following command.
$ ros2 launch turtlebot3_manipulation_bringup hardware.launch.py
DANGER
Please be aware of pinching your body between the robot joints!!!
When the Turtlebot3 Manipulation bringup launches, the OpenMANIPULATOR-X will move to the initial pose.
It is recommended to set the OpenMANIPULATOR-X as a similar pose as shown below image to avoid any physical damage during the initial pose.
[TurtleBot3]
In order to run a TurtleBot3 Manipulation simulation using Gazebo, please skip to Simulation section.
The following command will bringup the actual TurtleBot3 hardware with OpenMANIPULATOR-X on it.
- Open a terminal from the TurtleBot3 SBC.
- Bring up the TurtleBot3 Manipulation using the following command.
$ ros2 launch turtlebot3_manipulation_bringup hardware.launch.py
DANGER
Please be aware of pinching your body between the robot joints!!!
When the Turtlebot3 Manipulation bringup launches, the OpenMANIPULATOR-X will move to the initial pose.
It is recommended to set the OpenMANIPULATOR-X as a similar pose as shown below image to avoid any physical damage during the initial pose.
NOTE: This feature in the selected ROS distribution is not available yet.
Simulation
Simulate TurtleBot3 Manipulation using Gazebo by following this section.
Run Gazebo
[Remote PC] Load TurtleBot3 with OpenMANIPULATOR-X into Gazebo world with the following command.
$ roslaunch turtlebot3_manipulation_gazebo turtlebot3_manipulation_gazebo.launch
Run move_group Node
[Remote PC] In order to use Moveit feature, launch move_group node. If you press [▶] button in Gazebo to start simulation, use the following command.
With a successful launch, “You can start planning now!” message will be printed on the terminal.
$ roslaunch turtlebot3_manipulation_moveit_config move_group.launch
Run RViz
[Remote PC] Use Moveit feature in RViz by reading moveit.rviz
file where Moveit enviroment data is configured.
You can control the mounted manipulator using an interactive marker, and simulate the motion of goal position, which helps preventing a possible physical contact by simulating the motion in advance.
$ roslaunch turtlebot3_manipulation_moveit_config moveit_rviz.launch
Run ROBOTIS GUI Controller
[Remote PC] You can also use ROBOTIS GUI to control the OpenMANIPULATOR-X in Gazebo. The GUI supports Task Space and Joint Space controls. Use any control methods you prefer.
Task Space Control
: Control based on the valid gripping position (represented as a small red cube between the grippers) of the end-effector of the OpenMANIPULATOR-X.Joint Space Control
: Control based on each joint angle.
$ roslaunch turtlebot3_manipulation_gui turtlebot3_manipulation_gui.launch
Simulate TurtleBot3 Manipulation using Gazebo by following this section.
Run Gazebo
[Remote PC] Load TurtleBot3 with OpenMANIPULATOR-X into Gazebo world with the following command.
$ roslaunch turtlebot3_manipulation_gazebo turtlebot3_manipulation_gazebo.launch
Run move_group Node
[Remote PC] In order to use Moveit feature, launch move_group node. If you press [▶] button in Gazebo to start simulation, use the following command.
With a successful launch, “You can start planning now!” message will be printed on the terminal.
$ roslaunch turtlebot3_manipulation_moveit_config move_group.launch
Run RViz
[Remote PC] Use Moveit feature in RViz by reading moveit.rviz
file where Moveit enviroment data is configured.
You can control the mounted manipulator using an interactive marker, and simulate the motion of goal position, which helps preventing a possible physical contact by simulating the motion in advance.
$ roslaunch turtlebot3_manipulation_moveit_config moveit_rviz.launch
Run ROBOTIS GUI Controller
[Remote PC] You can also use ROBOTIS GUI to control the OpenMANIPULATOR-X in Gazebo. The GUI supports Task Space and Joint Space controls. Use any control methods you prefer.
Task Space Control
: Control based on the valid gripping position (represented as a small red cube between the grippers) of the end-effector of the OpenMANIPULATOR-X.Joint Space Control
: Control based on each joint angle.
$ roslaunch turtlebot3_manipulation_gui turtlebot3_manipulation_gui.launch
Simulate TurtleBot3 Manipulation using Gazebo by following this section.
Run Gazebo
[Remote PC] Load TurtleBot3 with OpenMANIPULATOR-X into Gazebo world with the following command.
$ roslaunch turtlebot3_manipulation_gazebo turtlebot3_manipulation_gazebo.launch
Run move_group Node
[Remote PC] In order to use Moveit feature, launch move_group node. If you press [▶] button in Gazebo to start simulation, use the following command.
With a successful launch, “You can start planning now!” message will be printed on the terminal.
$ roslaunch turtlebot3_manipulation_moveit_config move_group.launch
Run RViz
[Remote PC] Use Moveit feature in RViz by reading moveit.rviz
file where Moveit enviroment data is configured.
You can control the mounted manipulator using an interactive marker, and simulate the motion of goal position, which helps preventing a possible physical contact by simulating the motion in advance.
$ roslaunch turtlebot3_manipulation_moveit_config moveit_rviz.launch
Run ROBOTIS GUI Controller
[Remote PC] You can also use ROBOTIS GUI to control the OpenMANIPULATOR-X in Gazebo. The GUI supports Task Space and Joint Space controls. Use any control methods you prefer.
Task Space Control
: Control based on the valid gripping position (represented as a small red cube between the grippers) of the end-effector of the OpenMANIPULATOR-X.Joint Space Control
: Control based on each joint angle.
$ roslaunch turtlebot3_manipulation_gui turtlebot3_manipulation_gui.launch
Note: This feature is available for Kinetic.
Simulate the TurtleBot3 Manipulation using Gazebo by following the instructions below.
How to Run Gazebo
[Remote PC] Bringup the TurtleBot3 with OpenMANIPULATOR-X into Gazebo world with the following command.
$ ros2 launch turtlebot3_manipulation_bringup gazebo.launch.py
TIP
In order to run with RViz, append the start_rviz
parameter as below.
$ ros2 launch turtlebot3_manipulation_bringup gazebo.launch.py start_rviz:=true
To control the TurtleBot3 in the Gazebo simulation, the servo server node of the MoveIt must be launched first.
$ ros2 launch turtlebot3_manipulation_moveit_config servo.launch.py
Launch the keyboard teleoperation node.
$ ros2 run turtlebot3_manipulation_teleop turtlebot3_manipulation_teleop
TIP
Following keys ard used to control the TurtleBot3.
Use o|k|l|; keys to move turtlebot base and use 'space' key to stop the base
Use s|x|z|c|a|d|f|v keys to Cartesian jog
Use 1|2|3|4|q|w|e|r keys to joint jog.
'ESC' to quit.
Simulation with MoveIt
[Remote PC] In order to use MoveIt to operate the OpenMANIPULATOR-X in the Gazebo, terminate other Gazebo and RViz tools first.
Enter the below command to launch RViz with MoveIt configuration.
$ ros2 launch turtlebot3_manipulation_moveit_config moveit_gazebo.launch.py
The MoveIt Interface on RViz will be launched along with the Gazebo simulator.
Simulate the TurtleBot3 Manipulation using Gazebo by following the instructions below.
How to Run Gazebo
[Remote PC] Bringup the TurtleBot3 with OpenMANIPULATOR-X into Gazebo world with the following command.
$ ros2 launch turtlebot3_manipulation_bringup gazebo.launch.py
TIP
In order to run with RViz, append the start_rviz
parameter as below.
$ ros2 launch turtlebot3_manipulation_bringup gazebo.launch.py start_rviz:=true
To control the TurtleBot3 in the Gazebo simulation, the servo server node of the MoveIt must be launched first.
$ ros2 launch turtlebot3_manipulation_moveit_config servo.launch.py
Launch the keyboard teleoperation node.
$ ros2 run turtlebot3_manipulation_teleop turtlebot3_manipulation_teleop
TIP
Following keys ard used to control the TurtleBot3.
Use o|k|l|; keys to move turtlebot base and use 'space' key to stop the base
Use s|x|z|c|a|d|f|v keys to Cartesian jog
Use 1|2|3|4|q|w|e|r keys to joint jog.
'ESC' to quit.
Simulation with MoveIt
[Remote PC] In order to use MoveIt to operate the OpenMANIPULATOR-X in the Gazebo, terminate other Gazebo and RViz tools first.
Enter the below command to launch RViz with MoveIt configuration.
$ ros2 launch turtlebot3_manipulation_moveit_config moveit_gazebo.launch.py
The MoveIt Interface on RViz will be launched along with the Gazebo simulator.
NOTE: This feature in the selected ROS distribution is not available yet.
Operate the Actual OpenMANIPULATOR
Follow the given instruction to operate your robot.
Run roscore
[Remote PC] Run roscore to use ROS 1.
$ roscore
Run Bringup
- [TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
- [Remote PC] Run Bringup node for OpenMANIPULATOR on TurtleBot3
$ roslaunch turtlebot3_manipulation_bringup turtlebot3_manipulation_bringup.launch
Run move_group Node
$ roslaunch turtlebot3_manipulation_moveit_config move_group.launch
Run RViz
[Remote PC] Run Rviz to visualize data and to use the interactive marker.
$ roslaunch turtlebot3_manipulation_moveit_config moveit_rviz.launch
Run ROBOTIS GUI Controller
[Remote PC] OpenMANIPULATOR can be controlled with using ROBOTIS GUI controller instead of RVIz tool.
$ roslaunch turtlebot3_manipulation_gui turtlebot3_manipulation_gui.launch
Follow the given instruction to operate your robot.
Run roscore
[Remote PC] Run roscore to use ROS 1.
$ roscore
Run Bringup
- [TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
- [Remote PC] Run Bringup node for OpenMANIPULATOR on TurtleBot3
$ roslaunch turtlebot3_manipulation_bringup turtlebot3_manipulation_bringup.launch
Run move_group Node
$ roslaunch turtlebot3_manipulation_moveit_config move_group.launch
Run RViz
[Remote PC] Run Rviz to visualize data and to use the interactive marker.
$ roslaunch turtlebot3_manipulation_moveit_config moveit_rviz.launch
Run ROBOTIS GUI Controller
[Remote PC] OpenMANIPULATOR can be controlled with using ROBOTIS GUI controller instead of RVIz tool.
$ roslaunch turtlebot3_manipulation_gui turtlebot3_manipulation_gui.launch
Follow the given instruction to operate your robot.
Run roscore
[Remote PC] Run roscore to use ROS 1.
$ roscore
Run Bringup
- [TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
- [Remote PC] Run Bringup node for OpenMANIPULATOR on TurtleBot3
$ roslaunch turtlebot3_manipulation_bringup turtlebot3_manipulation_bringup.launch
Run move_group Node
$ roslaunch turtlebot3_manipulation_moveit_config move_group.launch
Run RViz
[Remote PC] Run Rviz to visualize data and to use the interactive marker.
$ roslaunch turtlebot3_manipulation_moveit_config moveit_rviz.launch
Run ROBOTIS GUI Controller
[Remote PC] OpenMANIPULATOR can be controlled with using ROBOTIS GUI controller instead of RVIz tool.
$ roslaunch turtlebot3_manipulation_gui turtlebot3_manipulation_gui.launch
Note: This feature is available for Kinetic.
Please be aware that the acutual hardware operation requires Bringup from the TurtleBot3 SBC.
[Remote PC] Enter the command below to launch the MoveIt on RViz.
$ ros2 launch turtlebot3_manipulation_moveit_config moveit_core.launch.py
To operate the robot with the keyboard teleoperation node, the RViz must be terminated.
Then launch the servo server node and teleoperation nodes on a separate terminal window.
$ ros2 launch turtlebot3_manipulation_moveit_config servo.launch.py
$ ros2 run turtlebot3_manipulation_teleop turtlebot3_manipulation_teleop
Please be aware that the acutual hardware operation requires Bringup from the TurtleBot3 SBC.
[Remote PC] Enter the command below to launch the MoveIt on RViz.
$ ros2 launch turtlebot3_manipulation_moveit_config moveit_core.launch.py
To operate the robot with the keyboard teleoperation node, the RViz must be terminated.
Then launch the servo server node and teleoperation nodes on a separate terminal window.
$ ros2 launch turtlebot3_manipulation_moveit_config servo.launch.py
$ ros2 run turtlebot3_manipulation_teleop turtlebot3_manipulation_teleop
NOTE: This feature in the selected ROS distribution is not available yet.
SLAM
Use SLAM feature to update an unknown map with TurtleBot3 and OpenMANIPULATOR
;
Run roscore
[Remote PC] Run roscore to use ROS 1.
$ roscore
Run Bringup
[TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
roslaunch turtlebot3_bringup turtlebot3_robot.launch
NOTE: As OpenMANIPULATOR on TurtleBot3 is not neccessory for SLAM, move_group and bringup nodes, which are the parameters to control OpenMANIPULATOR, are not important to use
Run SLAM Node
[Remote PC] Run SLAM node for updating an unknown map with TurtleBot3. This node utilizes gmapping package.
$ roslaunch turtlebot3_manipulation_slam slam.launch
Run turtlebot3_teleop_key Node
- [Remote PC] Update the map where TurtleBot3 will navigate using turtlebot3_teleop_key node.
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
- [Remote PC] Once the map is completely updated, run the map_saver node to save the updated map.
$ rosrun map_server map_saver -f ~/map
Use SLAM feature to update an unknown map with TurtleBot3 and OpenMANIPULATOR
;
Run roscore
[Remote PC] Run roscore to use ROS 1.
$ roscore
Run Bringup
[TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
roslaunch turtlebot3_bringup turtlebot3_robot.launch
NOTE: As OpenMANIPULATOR on TurtleBot3 is not neccessory for SLAM, move_group and bringup nodes, which are the parameters to control OpenMANIPULATOR, are not important to use
Run SLAM Node
[Remote PC] Run SLAM node for updating an unknown map with TurtleBot3. This node utilizes gmapping package.
$ roslaunch turtlebot3_manipulation_slam slam.launch
Run turtlebot3_teleop_key Node
- [Remote PC] Update the map where TurtleBot3 will navigate using turtlebot3_teleop_key node.
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
- [Remote PC] Once the map is completely updated, run the map_saver node to save the updated map.
$ rosrun map_server map_saver -f ~/map
Use SLAM feature to update an unknown map with TurtleBot3 and OpenMANIPULATOR
;
Run roscore
[Remote PC] Run roscore to use ROS 1.
$ roscore
Run Bringup
[TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
roslaunch turtlebot3_bringup turtlebot3_robot.launch
NOTE: As OpenMANIPULATOR on TurtleBot3 is not neccessory for SLAM, move_group and bringup nodes, which are the parameters to control OpenMANIPULATOR, are not important to use
Run SLAM Node
[Remote PC] Run SLAM node for updating an unknown map with TurtleBot3. This node utilizes gmapping package.
$ roslaunch turtlebot3_manipulation_slam slam.launch
Run turtlebot3_teleop_key Node
- [Remote PC] Update the map where TurtleBot3 will navigate using turtlebot3_teleop_key node.
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
- [Remote PC] Once the map is completely updated, run the map_saver node to save the updated map.
$ rosrun map_server map_saver -f ~/map
Be sure to read SLAM manual before use of the following instruction.
Run SLAM Nodes
[Remote PC]
- Open a terminal on Remote PC.
- Launch slam node using the following command.
$ ros2 launch turtlebot3_cartographer cartographer.launch.py
Run Teleoperation Nodes
[Remote PC]
- Open a terminal on Remote PC.
- Launch teleop node using the following command.
$ ros2 run turtlebot3_manipulation_teleop turtlebot3_manipulation_teleop_keyboard
-
Manipulate OpenMANIPULATOR-X on TurtleBot3 using the virtual controller. Simply type the keys without using an Enter key.
--------------------------- Control TurtleBot3 + OpenManipulatorX --------------------------- 8 : increase linear velocity 2 : decrease linear velocity 4 : increase angular velocity 6 : decrease angular velocity 5 : base stop w : increase x axis in task space s : decrease x axis in task space a : increase y axis in task space d : decrease y axis in task space z : increase z axis in task space x : decrease z axis in task space y : increase joint 1 angle h : decrease joint 1 angle u : increase joint 2 angle j : decrease joint 2 angle i : increase joint 3 angle k : decrease joint 3 angle o : increase joint 4 angle l : decrease joint 4 angle g : gripper open f : gripper close 0 : init pose 1 : home pose q to quit --------------------------- Present Linear Velocity: 0.000, Angular Velocity: 0.000 Present Joint Angle J1: 0.000 J2: 0.000 J3: 0.000 J4: 0.000 Present Kinematics Position X: 0.000 Y: 0.000 Z: 0.000 ---------------------------
Save the Map
[Remote PC]
- Open a terminal on Remote PC.
- Launch map_saver node using the following command.
$ ros2 run nav2_map_server map_saver -f ~/map
Be sure to read SLAM manual before use of the following instruction.
Run SLAM Nodes
[Remote PC]
- Open a terminal on Remote PC.
- Launch slam node using the following command.
$ ros2 launch turtlebot3_manipulation_cartographer cartographer.launch.py
Run Teleoperation Nodes
[Remote PC]
-
Open a terminal on Remote PC.
- Launch the servo server node.
$ ros2 launch turtlebot3_manipulation_moveit_config servo.launch.py
- Launch teleop node using the following command.
$ ros2 run turtlebot3_manipulation_teleop turtlebot3_manipulation_teleop
- Use
O
,K
,L
,;
keys to drive the TurtleBot3 platform.
Save the Map
[Remote PC]
- Open a terminal on Remote PC.
- Run the nav2_map_server to save the current map on RViz.
$ ros2 run nav2_map_server map_saver_cli -f ~/map
Be sure to read SLAM manual before use of the following instruction.
Run SLAM Nodes
[Remote PC]
- Open a terminal on Remote PC.
- Launch slam node using the following command.
$ ros2 launch turtlebot3_manipulation_cartographer cartographer.launch.py
Run Teleoperation Nodes
[Remote PC]
-
Open a terminal on Remote PC.
- Launch the servo server node.
$ ros2 launch turtlebot3_manipulation_moveit_config servo.launch.py
- Launch teleop node using the following command.
$ ros2 run turtlebot3_manipulation_teleop turtlebot3_manipulation_teleop
- Use
O
,K
,L
,;
keys to drive the TurtleBot3 platform.
Save the Map
[Remote PC]
- Open a terminal on Remote PC.
- Run the nav2_map_server to save the current map on RViz.
$ ros2 run nav2_map_server map_saver_cli -f ~/map
NOTE: This feature in the selected ROS distribution is not available yet.
Navigation
Send TurtleBot3 with OpenMANIPULATOR to the desired position in the map using Navigation node.
Run roscore
[Remote PC] Run roscore to use ROS 1.
$ roscore
Run Bringup
[TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
Run Navigation Node
[Remote PC] Run Navigation node with the following command, which will call Unified Robot Description Format (urdf) and configuration data of RViz to set GUI enviroment, parmeters for Navigation and updated map.
$ roslaunch turtlebot3_manipulation_navigation navigation.launch
How to Control OpenMANIPULATOR with Navigation
You can run this node to control OpenMANIPULATOR on TurtleBot3 when TurtleBot3 is approaching to a goal position when Navigation node is running. However, when TurtleBot3 is in motion, the movement of OpenMANIPULATOR will be unstable by external influences, such as center of gravity, or vibration; so that it is recommended for the manipulator to be used when TurtleBot3 is not driving.
Run Bringup node for OpenMANIPULATOR
[Remote PC] Run turtlebot3_manipulation_bringup node just as use of single OpenMANIPULATOR. This node contains arm_controller and gripper_controller.
$ roslaunch turtlebot3_manipulation_bringup turtlebot3_manipulation_bringup.launch
Run move_group Node
move_group node supports two interfaces to control OpenMANIPULATOR; Moveit! and ROBOTIS GUI. Choose either of them according to your preference. In this section, GUI Controller is introduced only.
$ roslaunch turtlebot3_manipulation_moveit_config move_group.launch
NOTE: Please refer to MoveIt! for more details.
Run GUI Controller
Using this interface, you can control OpenMANIPULATOR on TurtleBot3 [Remote PC]
$ roslaunch turtlebot3_manipulation_gui turtlebot3_manipulation_gui.launch
Send TurtleBot3 with OpenMANIPULATOR to the desired position in the map using Navigation node.
Run roscore
[Remote PC] Run roscore to use ROS 1.
$ roscore
Run Bringup
[TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
Run Navigation Node
[Remote PC] Run Navigation node with the following command, which will call Unified Robot Description Format (urdf) and configuration data of RViz to set GUI enviroment, parmeters for Navigation and updated map.
$ roslaunch turtlebot3_manipulation_navigation navigation.launch
How to Control OpenMANIPULATOR with Navigation
You can run this node to control OpenMANIPULATOR on TurtleBot3 when TurtleBot3 is approaching to a goal position when Navigation node is running. However, when TurtleBot3 is in motion, the movement of OpenMANIPULATOR will be unstable by external influences, such as center of gravity, or vibration; so that it is recommended for the manipulator to be used when TurtleBot3 is not driving.
Run Bringup node for OpenMANIPULATOR
[Remote PC] Run turtlebot3_manipulation_bringup node just as use of single OpenMANIPULATOR. This node contains arm_controller and gripper_controller.
$ roslaunch turtlebot3_manipulation_bringup turtlebot3_manipulation_bringup.launch
Run move_group Node
move_group node supports two interfaces to control OpenMANIPULATOR; Moveit! and ROBOTIS GUI. Choose either of them according to your preference. In this section, GUI Controller is introduced only.
$ roslaunch turtlebot3_manipulation_moveit_config move_group.launch
NOTE: Please refer to MoveIt! for more details.
Run GUI Controller
Using this interface, you can control OpenMANIPULATOR on TurtleBot3 [Remote PC]
$ roslaunch turtlebot3_manipulation_gui turtlebot3_manipulation_gui.launch
Send TurtleBot3 with OpenMANIPULATOR to the desired position in the map using Navigation node.
Run roscore
[Remote PC] Run roscore to use ROS 1.
$ roscore
Run Bringup
[TurtleBot3 SBC] Run Bringup node for TurtleBot3, and start rosserial and LDS sensor using following command.
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
Run Navigation Node
[Remote PC] Run Navigation node with the following command, which will call Unified Robot Description Format (urdf) and configuration data of RViz to set GUI enviroment, parmeters for Navigation and updated map.
$ roslaunch turtlebot3_manipulation_navigation navigation.launch
How to Control OpenMANIPULATOR with Navigation
You can run this node to control OpenMANIPULATOR on TurtleBot3 when TurtleBot3 is approaching to a goal position when Navigation node is running. However, when TurtleBot3 is in motion, the movement of OpenMANIPULATOR will be unstable by external influences, such as center of gravity, or vibration; so that it is recommended for the manipulator to be used when TurtleBot3 is not driving.
Run Bringup node for OpenMANIPULATOR
[Remote PC] Run turtlebot3_manipulation_bringup node just as use of single OpenMANIPULATOR. This node contains arm_controller and gripper_controller.
$ roslaunch turtlebot3_manipulation_bringup turtlebot3_manipulation_bringup.launch
Run move_group Node
move_group node supports two interfaces to control OpenMANIPULATOR; Moveit! and ROBOTIS GUI. Choose either of them according to your preference. In this section, GUI Controller is introduced only.
$ roslaunch turtlebot3_manipulation_moveit_config move_group.launch
NOTE: Please refer to MoveIt! for more details.
Run GUI Controller
Using this interface, you can control OpenMANIPULATOR on TurtleBot3 [Remote PC]
$ roslaunch turtlebot3_manipulation_gui turtlebot3_manipulation_gui.launch
Be sure to read Navigation manual before use of the following instruction.
- Open a terminal on Remote PC.
- Launch the navigation file using the following command.
$ ros2 launch turtlebot3_navigation2 navigation2.launch.py map:=$HOME/map.yaml
Be sure to read Navigation manual before use of the following instruction.
- Open a terminal on Remote PC.
- Launch the navigation file using the following command.
$ ros2 launch turtlebot3_manipulation_navigation2 navigation2.launch.py map_yaml_file:=$HOME/map.yaml
Be sure to read Navigation manual before use of the following instruction.
- Open a terminal on Remote PC.
- Launch the navigation file using the following command.
$ ros2 launch turtlebot3_manipulation_navigation2 navigation2.launch.py map_yaml_file:=$HOME/map.yaml
NOTE: This feature in the selected ROS distribution is not available yet.