====== Dynamixel Motors: ROS Interface ======
---------------------------------------------
This section refers you to instructions for installing the ROS Dynamixel motor stack as well as associated tutorials to operate the motors on ROS.
**Prerequisite:** This assumes:
- instructions in [[dynamixel:hardware | hardware setup ]] have been completed.
- you are operating on a Ubuntu release with an appropriate distribution of ROS already installed
===== Install Dynamixel Motor Stack =====
We will clone a repository forked from Anton Rebgun's [[ https://github.com/arebgun/dynamixel_motor | dynamixel_motor ]] repository. The final version of ROS supported by this motor controller stack was ROS 1 kinetic (Python 2.7). Our lab-maintained fork of this repository has been updated to support ROS1 melodic and beyond (Python 3); ROS2 is **not supported**.
If you haven't yet created a catkin workspace, open a terminal and run the following:
$ source /opt/ros/%ROS_DISTRO%/setup.bash
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin build
where '''%ROS_DISTRO%''' should be replaced with the ROS distribution installed on your system (e.g. melodic, noetic).
The following is derived from instructions found on the ROS.org page for the [[ http://wiki.ros.org/dynamixel_motor?distro=kinetic | Dynamixel motor stack ]]. It will clone the forked and lab-maintained repository into your catkin workspace: [[ https://github.com/ivaROS/ivaDynamixel | https://github.com/ivaROS/ivaDynamixel ]]. It presumes your catkin workspace is located per the instructions above:
cd ~/catkin_ws/src
git clone https://github.com/ivaROS/ivaDynamixel.git
===== ROS Dynamixel Motor Tutorial =====
Follow this [[ http://wiki.ros.org/dynamixel_controllers/Tutorials | tutorial ]] for the ROS Dynamixel motor stack.
It will guide you through useful tools to communicate with connected motors. A walk-through is additionally provided to configure a pan-tilt motor arrangement and program a ROS node to operate it.
---------
;#;
[[dynamixel:sw_prelim | Previous: Matlab ]] -- [[dynamixel:main | Main (Dynamixel) ]]
;#;