This is a ROS package using Moveit to control a Scara robot arm. We use Solidworks to create the robot model and URDF file, Moveit to plan the trajectory of the arm, and Galil control card to control the multi-axis motion of the robot arm.
This package includes four sub-packages:
- Three-links URDF package: Generated by Solidworks. Follow the sw2urdf GUI, and a ROS package with Rviz demo will be created automatically. Solidworks to URDF tutorials
- My moveit controller: Use Moveit setup assistant to create a Moveit package and choose KDL Kinematics Plugin as the kinematics solver, then you can simply plan a trajectory by dragging the end of the robot arm. Moveit Setup Assistant
- Based driver: Create an action server to accept the joint trajectories and use Gclib (Galil's C++ API) to send our motion request to the Galil control card, and then the control card will drive the motor when it receives a new position.
- Applications: Move group C++ interface allows us to use API to create applications, such as collision detection, obstacle avoidance, and object attachment (todo). Move Group C++ Interface
These four sub-packages cover all basic functions for controlling a simple Scara robot.
Download the packages to the src folder in your workspace, and then go to the root folder of the workspace using catkin build
to build ROS packages, including three_links
, my_moveit_controller
, based_driver
, and applications
.
catkin build three_links my_moveit_controller based_driver applications
After building all necessary packages, run the following command to open moveit and rviz simulation.
roslaunch based_driver moveit_to_galil.launch
For obstacle avoidance, keep moveit on and open another window to run the following command:
rosrun applications avoid_obstacle
Then click the next
button on Rviz visualization toolbar to add and erase obstacles to the world.