从 rviz 发送命令

从 rviz 发送命令

../_images/ros-rviz.png

RVIZ 允许实时查看车辆的本地位置和姿态、激光雷达数据和制图师的 3D 地图。也可以设置本地位置目标,并让ROS的导航库(在ArduPilot的速度控制器的帮助下)将车辆移动到目标。

这些指令在运行APSync映像并安装了ROS的Nvidia TX2上进行了测试,如此所述。此页面上的一些信息可在以下维基页面上找到:

客户端电脑设置

  • 在客户端 PC(rviz 将运行的地方)上安装 ROS“桌面完整”。

  • 连接到车辆的wifi接入点(如果使用APSync,则默认用户名/密码为ardupilot/ardupilot)

  • 打开命令提示符并检查是否可以“ping”运行 ROS 的配套计算机。如果使用 APSync,这两个命令都应该有效

ping 10.0.1.128
ping apsync.local
  • 使用您喜欢的编辑器打开文件(可能需要使用 sudo),并确保配套计算机出现在列表中。以下是配套计算机运行APSync时应显示的内容/etc/hosts

10.0.1.128  apsync.local
10.0.1.128  apsync
  • 在新的命令提示符下,键入以获取客户端电脑的名称hostname

  • 使用您喜欢的编辑器将以下两行添加到底部~/.bashrc

export ROS_HOSTNAME=your-host-name.local    <--- substitute the client PC's name here
export ROS_MASTER_URI=http://apsync.local:11311

配套计算机设置

  • SSH 到配套计算机上。如果使用APsync,则以下内容应该有效(密码为“apsync”)

ssh apsync@apsync.local
  • 使用您喜欢的编辑器将以下行添加到底部~/.bashrc

export ROS_HOSTNAME=apsync.local
export ROS_MASTER_URI=http://apsync.local:11311

检查 ROS 数据在客户端上是否可用

要确认客户端笔记本电脑可以从车辆中检索数据,请尝试以下命令

rostopic list
rostopic echo /robot_pose

启动 rviz

  • 在客户端 PC 上启动 rviz

rosrun rviz rviz
  • 查看实时激光雷达数据

    • 在显示区域中,选择“添加”,“激光扫描”

    • 添加后,展开“激光扫描”部分并将“主题”设置为“/scan”

  • 查看环境地图

    • 选择“添加”、“地图”

    • 添加后,展开“地图”部分并将“主题”设置为“/map”

  • 查看车辆的当前航向(根据 ROS)

    • 选择“添加”,“姿势”

    • 添加后,展开“姿势”部分并将“主题”设置为“/robot_pose”

发送位置目标

  • 要允许 ROS 通过 mavros 将位置目标发送到 ArduPilot,请登录运行 ROS 的 Companion Computer 并使用您喜欢的编辑器修改 mavros 的 node.launch 文件(如下所示的 gedit)

roscd mavros   <-- this assumes mavros has been installed with rosdep
cd launch
sudo gedit node.launch
  • 添加如下所示的一行并重新启动所有ROS进程后<rosparam command="load" file="$(arg config_yaml)" />

<remap from="/mavros/setpoint_position/local" to="/move_base_simple/goal" />
  • 布防车辆并切换到引导模式

  • 在 rviz 中,单击“2D 导航目标”按钮,然后单击并按住地图上的鼠标按钮以瞄准绿色箭头(这将设置目标位置和最终姿态),然后释放鼠标按钮

  • 地面站应显示飞行器正在移动的目标位置(任务规划器在目标位置放置一个绿色标记,并从车辆上向目标绘制一条橙色线)

如果一切未按预期进行,以下命令可能有助于诊断问题

  • rostopic info /move_base_simple/goal应将发布者显示为“rviz”,将订阅者显示为“mavros”

  • rostopic echo /move_base_simple/goal应在设置“2D 导航目标”后的瞬间显示“位置”和“方向”

  • rosrun rqt_graph rqt_graph显示了 ROS 节点及其连接的图形图

Last updated