This repo consists of the ROS packages for the robot description and the control modules for simulating the robot.
The list of packages are as follows:
- mule_control: This package contains the control modules for the robot.
- mule_robot_description: This package contains the URDF description of the robot with stereo camera setup.
- mule_gazebo: This package contains the launch files for simulating the robot in Gazebo.
- mule_msgs: This package contains the custom messages for the robot.
- mule_stream: This package contains WebRTC video streaming and Arduino communication scripts.
Make sure to pull submodules, run the following command in the terminal:
git submodule update --init --recursive
Since ROS1 is not natively supported on macOS, we use Docker for cross-platform compatibility.
- Docker Desktop for Mac
- XQuartz (for GUI applications):
brew install --cask xquartz
- Start XQuartz and allow network connections:
xhost +localhost
- Build and run with Docker Compose:
docker-compose up --build
Build the Docker image:
docker build -t mule_robot .
Run interactively:
docker run -it --rm \
-e DISPLAY=host.docker.internal:0 \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v $(pwd):/catkin_ws/src/mule \
-p 11311:11311 \
mule_robot
mule_ros
: ROS master nodemule_gazebo
: Gazebo simulation with warehouse environment and stereo camerasmule_stream
: WebRTC video streaming and Arduino communication service (ports 8080, 8081)
To install the packages:
- Clone the repository into your catkin workspace. 2- Inside the root of your catkin workspace, and run the following commands in the terminal:
catkin_make && source devel/setup.bash
3- Use the follwing launch file:
roslaunch mule_stream stream.launch
1- rosserial-python
sudo apt-get install ros-noetic-rosserial-python