Skip to content

Fundamentals of robotics repository for the Franka Emika robot.

Notifications You must be signed in to change notification settings

larics/for_franka_ros

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

for_franka_ros

Fundamentals of robotics ROS package for the Franka Emika robot.

Environment setup

Dockerfile for creating environment for the laboratory exercises, alongside with instructions how to use is located here.

Instructions for installing Docker can be found here.

After installing Docker, check post-installation steps to easily build, start and remove docker images.

Package instructions

Use

  1. You can launch robot with:
roslaunch for_franka_ros for_lab.launch
  1. Open up another terminal and enter docker container with:
docker exec -it for_cont bash
  1. Run script with:
python3 or_lab1.py

Topics

Topics that are used to control robot are under control_arm_node namespace.

Real robot [3rd laboratory exercise]

In order to work with real robot, we need to specify correct ROS_MASTER_URI and ROS_HOSTNAME setup.

You can do so with following commands:

echo "export ROS_MASTER_URI=http://192.168.150.250:11311" >> ~/.bashrc  
echo "export ROS_HOSTNAME=<your_ip>" >> ~/.bashrc    

After that you can run your or_lab3 script with:

python3 or_lab3.py

Sidenote

Robot trajectories (paths) while drawing a house won't be straight lines and it is normal and expected. However, from the figure obtained, you should see red and blue line, more or less in a same way.

Build workspace with autocomplete options

In order to use autocomplete and CMAKE_ARGS use following command:

catkin build --cmake-args -DCMAKE_C_FLAGS="-DCMAKE_EXPORT_COMPILE_COMMANDS=1"

Useful resources

Robot states

Current implemented robot states are:

  • JOINT_TRAJ_CTL --> OMPL MoveIt! integrated planner
  • CART_TRAJ_CTL --> Cartesian MoveIt! integrated planner
  • SERVO_CTL --> Not implemented yet!
  • IDLE --> If command sent, robot ignores cmd!

You can change states by invoking:

rosservice call /control_arm_node/change_state "state: "<WANTED_STATE>""

TODO:

  • Create control_arm.cpp interface [simple moveit wrapper]
  • Add instructions for building/using Dockerfile
  • Debug init HoCook
  • [py] Add class inheritance and develop one Lab class that will be inherited by each instance of the lab
  • [py] Added init joy ctl for pose tracking
  • [py] Add orientation ctl for joy
  • [cpp] Refactor
  • [cpp] Add yaml topic name reading
  • [cpp] Added init to the Cartesian path planning [Fails often]
  • [cpp] Add init pose tracking gazebo
  • [cpp] Add servo
  • [cpp] Add joystick control for servo (check existing Moveit 2 joy ctl)
  • [cpp] Add analytic IK [choose closest solution]
  • [cpp] Test joint pose commands
  • [cpp] Change to the shorter namespace
  • [cpp] Test with multiple robots (IFACE)
  • [cpp] IFACE test: Schunk
  • [cpp] IFACE test: Franka
  • [cpp] IFACE test: Kinova
  • [docs] Add CMake stuff
  • [docs] Add lab instructions as separate subsection

About

Fundamentals of robotics repository for the Franka Emika robot.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published