ROS2 simulation device packages to connect CLOiSim(the unity3D based multi-robot simulator).
follow the guideline on below link.
https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debians.html
mkdir -p ~/cloisim_ws/src
cd ~/cloisim_ws/src
git clone --recursive https://github.com/lge-ros2/cloisim_ros.git -b jazzy
sudo apt update
sudo apt install -y python3-rosdep
sudo rosdep init
rosdep update
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro jazzy
Set up ROS2 environment first
source /opt/ros2/jazzy/setup.bash
cd ~/cloisim_ws
colcon build --symlink-install --packages-up-to cloisim_ros_bringup
Set environment variable, if the server is not localhost
export CLOISIM_BRIDGE_IP='xxx.xxx.xxx.xxx'
export CLOISIM_SERVICE_PORT=8080
check here details for bring-up guide
recommended to use cylcone DDS
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
It's experimental feature for cloisim_ros. Use absolute path in FASTRTPS_DEFAULT_PROFILES_FILE environment variable.
For example,
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
export FASTRTPS_DEFAULT_PROFILES_FILE=/home/cloi/src/cloisim_ros/fastrtps_shared_profile.xml
Apply namespaceas each robot as a multi robot mode.
Strongly recommend to use this method.
ros2 launch cloisim_ros_bringup bringup_launch.py
ros2 launch cloisim_ros_bringup bringup_launch.py single_mode:=False
It shall NOT be applied namespace for robot and the number of robot must BE single in world environment.
ros2 launch cloisim_ros_bringup bringup_launch.py single_mode:=True
It provides a script to run CLOiSim easily.
ros2 launch cloisim_ros_bringup cloisim_launch.py sim_path:=/opt/CLOiSim/CLOiSim-2.2.0 world:=lg_seocho.world
Run below command after clone this repository(this branch).
git clone https://github.com/lge-ros2/cloisim_ros.git -b jazzy
cd cloisim_ros
docker build -t cloisim_ros .
You can add possible parameters as described above. ex) target_model, target_parts_type or target_parts_name
docker run -it --rm --net=host -e ROS_DOMAIN_ID=$ROS_DOMAIN_ID cloisim_ros
docker run -it --rm --net=host -e ROS_DOMAIN_ID=$ROS_DOMAIN_ID cloisim_ros single_mode:=True
docker run -it --rm -e CLOISIM_BRIDGE_IP='192.168.0.125' -e ROS_DOMAIN_ID=$ROS_DOMAIN_ID cloisim_ros
docker run -it --rm -e CLOISIM_BRIDGE_IP='192.168.0.125' -e ROS_DOMAIN_ID=$ROS_DOMAIN_ID cloisim_ros single_mode:=True
You can set bridge ip using below command.
export CLOISIM_BRIDGE_IP=$(ip addr show dev docker0 | grep "inet" | awk 'NR==1{print $2}' | cut -d'/' -f 1)
echo $CLOISIM_BRIDGE_IP
docker run -it --rm -e CLOISIM_BRIDGE_IP=$CLOISIM_BRIDGE_IP -e ROS_DOMAIN_ID=$ROS_DOMAIN_ID cloisim_ros