- drone framework PX4
- ROS package
- mavros
- tams_apriltags
- apriltag_ros
- usb_cam
- mavros_controller
- jackel
- install jackel simulation in gazebo. For ros noetic
sudo apt-get install ros-noetic-jackal-simulator ros-noetic-jackal-desktop ros-noetic-jackal-navigation
If ros-noetic-jackal-desktop cannot be located, then
wget https://packages.clearpathrobotics.com/public.key -O - | sudo apt-key add -
sudo sh -c 'echo "deb https://packages.clearpathrobotics.com/stable/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/clearpath-latest.list'
sudo apt-get update
Launch a jackel in simulation
roslaunch jackal_gazebo jackal_world.launch
without gazebo gui 1.
roslaunch jackal_gazebo jackal_world.launch gui:=false
- view in rviz
roslaunch jackal_viz view_robot.launch
- install and configure a drone with PX4 firmware
- launch simulation:
- empty word in gazebo
- jackal robot + apriltag
- drone with framework being px4
- fake vicon
- onboard node + mavros
roslaunch rne_gazebo RNE_simu_setup.launch
- launch drone controller + takeoff setpoint
- mavros_controller
- drone home position
- drone takeoff height
roslaunch rne_control rne_mission_control.launch
- launch apriltag and visual servoing
roslaunch rne_vs rne_vs.launch
- launch switch node
rosrun plotjuggler plotjuggler
- swarn drone with camera and arpiltag into simulation
<include file="$(find rne_gazebo)/launch/RNE_simu.launch"></include>
- run drone controller to receive commands from
/reference/setpoint
and send control input bodyrate to/mavros/setpoint_raw/attitude
<!-- drone controller -->
<arg name="mav_name" default="iris"/>
<arg name="command_input" default="2" />
<arg name="gazebo_simulation" default="true" />
<node pkg="geometric_controller" type="geometric_controller_node" name="geometric_controller" output="screen">
<param name="mav_name" type="string" value="$(arg mav_name)" />
<remap from="command/bodyrate_command" to="/mavros/setpoint_raw/attitude"/>
<param name="ctrl_mode" value="$(arg command_input)" />
<param name="enable_sim" value="$(arg gazebo_simulation)" />
<param name="max_acc" value="10.0" />
<!--Params specific for Iris copter-->
<param name="attctrl_constant" value="0.3"/>
<param name="normalizedthrust_constant" value="0.06"/>
<param name="normalizedthrust_offset" value="0.1"/>
<param name="Kp_x" value="10.0" />
<param name="Kp_y" value="10.0" />
<param name="Kp_z" value="20.0" />
<param name="Kv_x" value="5.0"/>
<param name="Kv_y" value="5.0"/>
<param name="Kv_z" value="10.0"/>
</node>
- undertake arpiltag detection
<include file="$(find apriltag_ros)/launch/rne_continuous_detection.launch">
</include>
- run takeoff node to send one single setpoint to
/reference/setpoint
<node pkg="geometric_controller" type="geometric_controller_takeoff_node" name="geometric_takeoff" output="screen">
</node>