Skip to content

Latest commit

 

History

History
50 lines (38 loc) · 2 KB

README.md

File metadata and controls

50 lines (38 loc) · 2 KB

Simple Robot Arm with ROS

simple 4DOF robot arm operated by ROS. Implements rosserial_python on the server, and rosserial_arduino on the Photon. I bought this robot from Banggood (but without the controller):

a robot arm with 4dof

The original model has a closed loop; i simplified this to remove the closed loop and plan to manage the offset joint angles through code.

a simulated robot arm with 5dof

task list

  • create custom message type e.g.
# Servoangle.msg
uint16 servo_id
uint16 target_angle
  • report current servo angles via joint state publisher
    • started
    • currently publishing servo angles
    • need to convert these to joint angles
  • report when requested angle is outside min/max range for servo
  • refactor code to move to separate h files
  • document wiring etc.

Instructions

ROS server

  1. clone ros folder to catkin_ws and run catkin_make. Tested on Lubuntu 18.04 LTS with Ros Melodic Morenia. Remember to install Python on your ROS server too.
  2. Launch roscore
  3. Launch rosrun rosserial_python serial_node.py tcp
  4. Publish something e.g. rostopic pub /servo std_msgs/String 0/300 would send an instruction to set servo 0 to 300 (which is out of range).

notes (for me!)

  • good notes on creating arrays for rosserial at http://wiki.ros.org/rosserial/Overview/Messages
  • use check_urdf src/simple_arm/urdf/simple_arm.xacro to check URDF is valid
  • use roslaunch training_world training_world.launch to launch world

Particle Photon

  1. Build particle_ros_node.ino
  2. doesn't seem to work via cloud build...
  3. flash to device (via cloud is ok)
  4. check at https://console.particle.io/devices to see the status

notes: incorporates https://github.com/wojiaojiao/pegasus_gazebo_plugins

Joint angle between vertical_arm and forearm