普罗米修斯应该也是可以快速在仿真和真机之间迁移的。其实原本就三个文件夹,experiment放真机的launch文件 simulator放仿真的launch文件,modules放具体的功能包cpp

普罗米修斯应该也是可以快速在仿真和真机之间迁移的。

 13:09:07
长远来看我还是希望自己能跑一跑仿真,仿真和真机的cpp是一样的

 13:09:08
真机和仿真主要就是launch不同

 13:09:08
是的simulate里面其实主要也还一些launch

 13:09:09
cpp主体一样

 13:09:09
launch文件也主体相同

 13:09:09
能够快速在仿真和真机中迁移

Simulator文件夹里面其实就是一个存放仿真launch文件的prometheus_gazebo功能包。p450_experiment现在明白可能就是仿照prometheus_gazebo功能包用来存放真机的launch文件,只不过移动出去了。

其实普罗米修斯原本就三个文件夹,experiment放真机的launch文件  simulator放仿真的launch文件,modules放具体的功能包cpp等等。这样结构就非常清晰了。

那几项真机功能的launch应该都是一开始基于仿真的launch改过来的应该。

比如这是仿真用的带航点搜寻的二维码降落sitl_landing_on_aruco_marker.launch

<launch>
	<!-- Launch Gazebo Simulation -->
	<arg name="x" default="0.0"/>
    <arg name="y" default="0.0"/>
    <arg name="z" default="0.05"/>
	<arg name="world" default="$(find prometheus_gazebo)/worlds/aruco_6X6_250.world"/>
	<arg name="sdf" default="$(find prometheus_gazebo)/amov_models/p450_monocular/p450_monocular.sdf"/>
	<arg name="model" default="p450_monocular"/>
    <include file="$(find prometheus_gazebo)/launch_basic/sitl.launch">
	  <arg name="world" value="$(arg world)"/>
	  <arg name="sdf" value="$(arg sdf)"/>
	  <arg name="model" value="$(arg model)"/>
      <arg name="x" value="$(arg x)"/>
      <arg name="y" value="$(arg y)"/>
      <arg name="z" value="$(arg z)"/>
    </include>

    <!-- 启动二维码检测算法 -->
    <node pkg="prometheus_detection" type="aruco_det" name="aruco_det" output="screen">
		<!-- 相机话题 -->
        <param name="camera_topic" type="string" value="/prometheus/sensor/monocular_down/image_raw" />
		<!-- 相机参数 -->
        <param name="camera_parameters" type="string" value="$(find prometheus_gazebo)/config/camera_config/gimbal_camera.yaml" />
		<!-- 输出话题1 -->
        <param name="output_pose_topic" type="string" value="/prometheus/object_detection/aruco_det" />
		<!-- 输出话题2 -->
        <param name="output_multi_pose_topic" type="string" value="/prometheus/object_detection/multi_aruco_det" />
		<!-- 输出图像话题 -->
        <param name="output_image_topic" type="string" value="/prometheus/camera/rgb/image_aruco_det" />
		<!-- 10号字典 -->
        <param name="dictionary_type" type="int" value="10" />
		<!-- 指定识别x号marker -->
        <param name="binding_id" type="int" value="19" />
		<!-- marker边长 10:8 -->
        <param name="target_marker_length" type="double" value="0.4" />
    </node>

	<!-- run the autonomous_landing_aruco.cpp -->
	<node pkg="prometheus_mission" type="autonomous_landing_aruco" name="autonomous_landing_aruco" output="screen" launch-prefix="gnome-terminal --">
		<!-- 仿真模式 - 区别在于是否自动切换offboard模式 -->
		<param name="sim_mode" value="true" />
		<!-- 悬停模式 - 仅用于观察检测结果 -->
		<param name="hold_mode" value="false" />
		<!-- 相机安装偏差 -->
		<param name="camera_offset_x" value="0.0" />
		<param name="camera_offset_y" value="0.0" />
		<param name="camera_offset_z" value="-0.1" />
		<!-- 追踪控制参数 -->
		<param name="kpx_land" value="0.2" />
		<param name="kpy_land" value="0.2" />
		<param name="kpz_land" value="0.08" />
	</node>

</launch>

这是真机用的launch

<launch>
	
 
    <!-- 启动二维码检测算法 -->
    <node pkg="prometheus_detection" type="aruco_det" name="aruco_det" output="screen">
		<!-- 相机话题 -->
        <param name="camera_topic" type="string" value="/prometheus/camera/rgb/image_raw" />
		<!-- 相机参数 -->
        <param name="camera_parameters" type="string" value="$(find prometheus_gazebo)/config/camera_config/gimbal_camera.yaml" />
		<!-- 输出话题1 -->
        <param name="output_pose_topic" type="string" value="/prometheus/object_detection/aruco_det" />
		<!-- 输出话题2 -->
        <param name="output_multi_pose_topic" type="string" value="/prometheus/object_detection/multi_aruco_det" />
		<!-- 输出图像话题 -->
        <param name="output_image_topic" type="string" value="/prometheus/camera/rgb/image_aruco_det" />
		<!-- 10号字典 -->
        <param name="dictionary_type" type="int" value="10" />
		<!-- 指定识别x号marker -->
        <param name="binding_id" type="int" value="19" />
		<!-- marker边长 10:8 -->
        <param name="target_marker_length" type="double" value="0.15" />
    </node>
 
	<!-- run the autonomous_landing_aruco.cpp -->
	<node pkg="prometheus_mission" type="autonomous_landing_aruco" name="autonomous_landing_aruco" output="screen" launch-prefix="gnome-terminal --">
		<!-- 仿真模式 - 区别在于是否自动切换offboard模式 -->
		<param name="sim_mode" value="false" />
		<!-- 悬停模式 - 仅用于观察检测结果 -->
		<param name="hold_mode" value="false" />
		<!-- 相机安装偏差 -->
		<param name="camera_offset_x" value="0.0" />
		<param name="camera_offset_y" value="0.0" />
		<param name="camera_offset_z" value="-0.1" />
		<!-- 追踪控制参数 -->
		<param name="kpx_land" value="0.2" />
		<param name="kpy_land" value="0.2" />
		<param name="kpz_land" value="0.08" />
	</node>
 
</launch>

所以只需要你在仿真中搭建一个和真机一样的环境,就应该可以快速迁移,就像肖昆打一个无人机比赛一样。其实普罗米修斯原本就三个文件夹,experiment放真机的launch文件  simulator放仿真的launch文件,modules放具体的功能包cpp等等。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值