RobotCAD is a FreeCAD workbench to generate robot description packages (xacro or URDF) for the Robot Operating System, ROS2. RobotCAD also known as OVERCROSS.
RobotCAD 4.0.0 functionality demo
Video of creating controllable models:
Diff drive chassis
Manipulator on chassis
Multicopter with manipulator and chassis
Chassis, manipulator, multicopter parts used in the video
If you have docker (buildx, compose plugins) installed just do
git clone https://github.com/drfenixion/freecad.robotcad.git
cd freecad.robotcad/docker
bash run.bash
Tested on Ubuntu 22.04 and Windows 10 via WSL2 (Ubuntu).
If docker is not installed look at docker/README.md. There is also additional information on how to use the startup script.
You also can install RobotCAD manually via FreeCAD Addon manager by Installation section
RobotCAD will not work with CROSS workbench (same namespace). Remove CROSS before install RobotCAD.
use commands in RobotCAD directory
git pull
cd docker
bash run.bash
In case of start issue (transfer from 3.0.0 to next version may need "-f") recreate container by
bash run.bash -f
RViz
Gazebo - Basic view
Gazebo - Joints view
Gazebo - Collisions view
Gazebo - Inertia view
Choosing of material of robot or link
Generated ROS 2 package
Launched Rviz and Gazebo from generated Gazebo launcher
Generated inertia blocks and centers of mass in Gazebo
Generated collisions in Gazebo
RobotCAD is a powerful ROS workbench for FreeCAD, a popular open-source 3D parametric modelling software. As the field of robotics continues to evolve rapidly, the need for comprehensive and efficient tools for robot development and simulation has become increasingly essential. RobotCAD emerges as a versatile solution, empowering engineers, researchers, and hobbyists to leverage the capabilities of both ROS and FreeCAD in a cohesive environment. At the time of writing (June 2023), RobotCAD is the only available open-source solution to generate robot description files for ROS with a graphical user interface with direct visual feedback.
With RobotCAD, users gain the ability to combine the flexibility of FreeCAD's 3D modeling capabilities with the extensive functionality of ROS, allowing for seamless collaboration between mechanical design and robotics development. By bridging the gap between these two powerful platforms, RobotCAD streamlines the process of designing, and visualizing robotic systems, ultimately accelerating the development cycle.
The key features of RobotCAD are:
Compatible with FreeCAD at least v0.21.2. Compatible with ROS2.
Part::Box
, Part::Sphere
, and Part::Cylinder
as text to be included in a URDF file,xacro:include
) the original xacro file and uses the macro.moveit_msgs/srv/GetPlanningScene
)You need a recent version of FreeCAD v0.21.2 with the ability to configure custom repositories for the Addon Manager to install the workbench via the Addon Manager. On earlier version you're on your own, see instructions for local install below.
https://github.com/drfenixion/freecad.robotcad.git
, branch: main
The RobotCAD workbench is supposed to load also without ROS, with limited functionality. If this is not the case, please report.
You will probably want to be able to use ROS-related functionalities and this requires launching FreeCAD from the command line:
sudo apt-get update
cd docker/ros2_ws/ && rosdep update && rosdep install -y -r -q --from-paths src --ignore-src --rosdistro ${ROS_DISTRO}
. /install/setup.bash
(Optional) You can also set extra Python modules
freecad --module-path ${PYTHONPATH//:/' --module-path '}
(replace freecad
by your FreeCAD executable). This bash magic will add for example --module-path path1 --module-path path2
if $PYTHONPATH
is path1:path2
.If you want to work on this workbench you have the following options (choose one):
-d
flag. You need to remove RobotCAD docker container first if it was created before without -d
flag. You can do remove old container and run with debug by -fd
flags. After that you will able to use VSCODE debugger.
git clone https://github.com/drfenixion/freecad.robotcad.git
cd freecad.robotcad/docker
bash run.bash -d
Mod
directory: cd ~/.local/share/FreeCAD/Mod && git clone https://github.com/drfenixion/freecad.robotcad.git
on Linuxfreecad.robotcad
)freecad.robotcad
(or the directory containing this repository if you changed the name) to FreeCAD's Mod
directory (~/.local/share/FreeCAD/Mod
on Linux).pip install -e .
adds the root-directory to easy_install.path
.New code will not automatically load to FreeCAD. You should restart FreeCAD by bash run.bash -d
command for getting affect of corrected code.