This guide explains how to set up and launch the SE3 controller for multicopter takeoff, control the multicopter to follow either a circular or a trajectory path, and receive image messages from Unreal Engine (UE) via EasySim and publish them to ROS.
https://github.com/9woods123/cmd2airsim/blob/master/README_ch.md
First, clone the necessary packages into your catkin_ws/src directory:
cd ~/catkin_ws/src
git clone https://github.com/9woods123/cmd2airsim.gitThen, go back to the workspace root and build the project:
cd ~/catkin_ws
catkin_make
source devel/setup.bashBefore launching the image streaming node, increase the system network buffer size to avoid dropped image messages:
sudo sysctl -w net.core.rmem_default=8388608
sudo sysctl -w net.core.rmem_max=8388608Make sure the UE simulation environment is up and running before starting the SE3 controller.
In a terminal, launch the SE3 controller to initiate multicopter takeoff:
roslaunch se3controller se3controller.launchAfter takeoff, you can choose one of the following flight modes:
roslaunch se3controller flying_example.launchOpen RViz and set the Fixed Frame to world_enu:
roslaunch se3controller flying_traj_example.launchWe provide a default RViz configuration for this example. You can refer to it to set the Fixed Frame, image topic, and odometry topic:
💡 Only one control mode should be launched at a time.
To receive and publish image messages from Unreal Engine, launch the EasySim ROS wrapper:
roslaunch easysim_ros_wrapper img_ros_node.launch💡 If you want to test image reception separately (without the SE3 controller), this node can be launched independently to verify communication with UE.
- ✅ Ensure the UE environment is running and configured to stream image data correctly.
- ✅ Confirm that the network buffer size was increased (step 0.1).
- ✅ Use
source devel/setup.bashin every terminal before launching ROS nodes. - ✅ If
catkin_makefails, check for missing dependencies or incorrect package structure.


