ROS示例----导航功能包Husky_exploration

举报
zhangrelay 发表于 2021/07/15 07:11:12 2021/07/15
【摘要】 ROS导航功能包示例husky amcl gmapping slam exploration 此功能包包含如下文件: 结构如下: $ tree -L 2.├── CMakeLists.txt -> /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake├── husky_base│   ├── CH...

ROS导航功能包示例husky amcl gmapping slam exploration


此功能包包含如下文件:


结构如下:


  
  1. $ tree -L 2
  2. .
  3. ├── CMakeLists.txt -> /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake
  4. ├── husky_base
  5. │   ├── CHANGELOG.rst
  6. │   ├── CMakeLists.txt
  7. │   ├── config
  8. │   ├── include
  9. │   ├── launch
  10. │   ├── package.xml
  11. │   └── src
  12. ├── husky_bringup
  13. │   ├── CHANGELOG.rst
  14. │   ├── CMakeLists.txt
  15. │   ├── config
  16. │   ├── debian
  17. │   ├── env-hooks
  18. │   ├── launch
  19. │   ├── package.xml
  20. │   ├── scripts
  21. │   └── udev
  22. ├── husky_control
  23. │   ├── CHANGELOG.rst
  24. │   ├── CMakeLists.txt
  25. │   ├── config
  26. │   ├── launch
  27. │   └── package.xml
  28. ├── husky_description
  29. │   ├── CHANGELOG.rst
  30. │   ├── CMakeLists.txt
  31. │   ├── launch
  32. │   ├── meshes
  33. │   ├── package.xml
  34. │   └── urdf
  35. ├── husky_desktop
  36. │   ├── CHANGELOG.rst
  37. │   ├── CMakeLists.txt
  38. │   └── package.xml
  39. ├── husky_gazebo
  40. │   ├── CHANGELOG.rst
  41. │   ├── CMakeLists.txt
  42. │   ├── launch
  43. │   ├── package.xml
  44. │   └── worlds
  45. ├── husky_msgs
  46. │   ├── CHANGELOG.rst
  47. │   ├── CMakeLists.txt
  48. │   ├── msg
  49. │   └── package.xml
  50. ├── husky_navigation
  51. │   ├── CHANGELOG.rst
  52. │   ├── CMakeLists.txt
  53. │   ├── config
  54. │   ├── launch
  55. │   ├── maps
  56. │   └── package.xml
  57. ├── husky_robot
  58. │   ├── CHANGELOG.rst
  59. │   ├── CMakeLists.txt
  60. │   └── package.xml
  61. ├── husky_simulator
  62. │   ├── CHANGELOG.rst
  63. │   ├── CMakeLists.txt
  64. │   └── package.xml
  65. └── husky_viz
  66. ├── CHANGELOG.rst
  67. ├── CMakeLists.txt
  68. ├── launch
  69. ├── package.xml
  70. └── rviz


按官网介绍,安装并配置后,启动示例如下:


  
  1. $ roslaunch husky_gazebo husky_empty_world.launch
  2. $ roslaunch husky_viz view_robot.launch
  3. $ roslaunch husky_navigation exploration_demo.launch




机器人在给定区域内自主探索绘制地图。下面简单看下这三个启动文件:


  
  1. <launch>
  2. <arg name="world_name" default="worlds/empty.world"/>
  3. <arg name="laser_enabled" default="true"/>
  4. <arg name="kinect_enabled" default="false"/>
  5. <include file="$(find gazebo_ros)/launch/empty_world.launch">
  6. <arg name="world_name" value="$(arg world_name)"/> <!-- world_name is wrt GAZEBO_RESOURCE_PATH environment variable -->
  7. <arg name="paused" value="false"/>
  8. <arg name="use_sim_time" value="true"/>
  9. <arg name="gui" value="true"/>
  10. <arg name="headless" value="false"/>
  11. <arg name="debug" value="false"/>
  12. </include>
  13. <include file="$(find husky_gazebo)/launch/spawn_husky.launch">
  14. <arg name="laser_enabled" value="$(arg laser_enabled)"/>
  15. <arg name="kinect_enabled" value="$(arg kinect_enabled)"/>
  16. </include>
  17. </launch>

启动一个仿真环境,激光和深度传感器有效。


  
  1. <launch>
  2. <node name="rviz" pkg="rviz" type="rviz" args="-d $(find husky_viz)/rviz/robot.rviz" output="screen"/>
  3. </launch>

启动rviz。


  
  1. <launch>
  2. <!--- Run gmapping -->
  3. <include file="$(find husky_navigation)/launch/gmapping.launch" />
  4. <!--- Run Move Base -->
  5. <include file="$(find husky_navigation)/launch/move_base.launch" />
  6. <!-- Run Frontier Exploration -->
  7. <include file="$(find husky_navigation)/launch/exploration.launch" />
  8. </launch>

exploration自主地图探索包含三个功能gmapping,move_base,exploration。

其中exploration.launch使用frontier_exploration进行地图探索:


  
  1. <launch>
  2. <node pkg="frontier_exploration" type="explore_client" name="explore_client" output="screen"/>
  3. <node pkg="frontier_exploration" type="explore_server" name="explore_server" output="screen">
  4. <param name="frequency" value="1.0"/>
  5. <!-- Should be less than sensor range -->
  6. <param name="goal_aliasing" value="2.0"/>
  7. <rosparam file="$(find husky_navigation)/config/costmap_common.yaml" command="load" ns="explore_costmap" />
  8. <rosparam file="$(find husky_navigation)/config/costmap_exploration.yaml" command="load" ns="explore_costmap" />
  9. </node>
  10. </launch>


graph:


tf-tree:



--附录--来源官网

Husky

ROS软件维护者:Clearpath机器人

目录

1. Husky

1. 安装

2. 用法

3. 演示应用程序

1. 导航

2. 操纵

4. 包装组件

Husky是一种坚固的户外无人地面车辆(UGV),适用于研究和快速原型应用。Husky完全支持ROS - 所有的软件包都可以在Husky github组织中获得

有关更多信息或接收报价,请访问我们的在线

安装

这些教程假设你对ROScatkin构建系统很方便。使用请熟悉ROScatkin教程。

这些教程将指导您使用ROS Indigo设置一个Husky机器人电脑。如果您从早期的ROS发行版升级,请确保对系统进行彻底备份。

1. 备份Husky配置

备份Husky机器人PC以保留现有/出厂配置。

2. 安装和配置Husky软件

使用安装程序映像从头设置Husky机器人PC

3. 自定义Husky配置

向基本Husky机器人配置添加自定义。

用法

Husky可以在真实和仿真环境中使用。如果您使用的是物理Husky,请确保所有外围设备都已插入,打开机器人,直接跳到步骤2

1. 仿真Husky

如何使用Gazebo仿真器来启动一个仿真的Husky机器人。

2. Husky通信

如何从您的桌面可视化,控制和与真实或仿真Husky机器人进行通信。

演示应用程序

仿真的Husky可以开箱即用地运行几个示例演示。这些可能需要在物理Husky机器人上运行之前进行额外的调谐和/或配置。

导航

1. Husky移动基地演示

使用基本move_base设置运行Husky ,没有映射或本地化。

2. HuskyAMCL演示

使用move_base设置运行Husky ,使用amcl进行本地化。

3. HuskyGmapping演示

使用move_base设置运行Husky ,使用gmapping映射和本地化(SLAM)。

4. Husky边境勘探演示

使用move_base设置运行Husky ,使用frontier_exploration进行勘探规划,gmapping用于映射和本地化(SLAM)。

操纵

1. Husky UR5移动操纵演示(仿真)

运行带有移动操作功能的Husky UR5

包装组件

请点击以下任何以下包裹的组件信息。

媒体

· Husky:极端的视觉教学和重复

 

备份Husky配置

说明:备份Husky机器人PC以保留现有/出厂配置。

关键词: ClearpathHusky

教学级: 中级

下一教程: 安装Husky软件 

Clearpath Husky升级到ROS Indigo是一个简单的过程,但是重要的是要了解每个Husky是不同的,我们的机器人匠已经对你的规格进行了定制。

请花时间了解这些修改是什么,以及如何重新安装Ubuntu Trusty / ROS Indigo

执行备份

1. 作为故障保护,请制作机器人硬盘驱动器的映像。如果您需要还原到先前的配置,则应始终能够还原此图像。

i. 最简单的方法是将可移动(USB或类似)硬盘驱动器连接到机器人PC,或拔下机器人硬盘驱动器并将其插入PC或工作站。

ii. 然后,您可以使用诸如CloneZilladd之类的工具将机器人硬盘驱动器的备份映像写入另一个硬盘驱动器。

iii. 或者,您可以简单地更换机器人计算机的硬盘驱动器,保留Hydro配置的驱动器并安装一个新的与Indigo一起使用。

2. 在文件系统中有几个地方应该专门为您的Husky寻找自定义:

位置

说明

/ etc / network / interfaces

您的机器人可能在此文件中配置了自定义网络配置。

/etc/ros/hydro/husky-core.d/*.launch

将包含base.launch和description.launch,可能包含您的机器人配置的自定义启动文件。

/etc/ros/setup.bash

可能包含您的配置的环境变量。

3. 请保存所有这些文件,并使用它们作为参考在Indigo配置!

 

安装和配置Husky软件

说明:使用安装程序映像从头设置Husky机器人PC

关键词: ClearpathHusky

教学级: 中级

下一教程: 自定义Husky配置

目录

1. 安装Husky软件

2. 测试基本配置

3. 校准磁力计

安装Husky软件

Clearpath提供了一个轻松定制的Ubuntu Trusty Server 14.04的安装映像,可自动提取Husky软件的所有必需依赖项。

1. 为您的平台下载适当的Indigo Husky ISO映像32位 - i386,64 位 - amd64

2. 使用unetbootin将映像复制到USB驱动器:

 $ sudo unetbootin isofile =“indigo-husky-amd64-latest.iso”

3. 将机器人PC连接到有线互联网访问,键盘和显示器。确保PC已连接到岸电,或Husky电池已充满电。

下一步擦拭机器人的硬盘驱动器,因此请确保您将该映像备份在另一个系统上!

4. USB驱动器启动您的机器人PC,并让安装程序工作的魔力。

5. 设置过程将自动完成,可能需要很长时间,具体取决于您的互联网连接的速度。

6. 一旦设置过程完成,PC将关闭。请拔下USB驱动器,然后重新打开PC

7. 首次引导时,用户名将管理员,密码将为 clearpath

8. 请按照屏幕上的配置说明进行操作。如果计算机重新启动,请等待PC启动到登录屏幕,然后重新输入登录凭据。

9. 计算机配置完成后,您可以使用passwd实用程序更改管理员帐户密码。

10. 要设置工厂标准的Husky机器人,请确保插入所有外围设备,然后运行以下命令:

 $ rosrun husky_bringup install

安装脚本将配置一个husky-core upstart 服务,这将启动基本的Husky启动文件。该脚本还将检测您已安装的任何标准外围设备(IMUGPS等),并添加它们的服务。

测试基本配置

1. 要测试您的配置,请使用以下命令启动后台服务:

 $ sudo service husky-core start

2. COMMHusky光应该由红变绿。您可以通过检查日志来检查服务是否已正确启动:

 $ sudo tail /var/log/upstart/hus​​ky-core.log -n 30

3. 你的Husky现在应该接受你的操纵杆的命令。该服务将在您每次启动您的Husky的电脑时自动启动。

校准磁力计

· Husky将在校准期间自动旋转。确保所有外部电缆已拔下,Husky1米半径范围内有无障碍的移动空间。

如果您的Husky安装了UM6 IMU,则必须先校准磁力计的磁偏差,然后再用于姿态估计。

1. 确保husky-core服务正在运行。

2. 通过sshHusky计算机上远程执行校准脚本:

rosrun husky_bringup calibrate_compass

3. 按照屏幕上的说明进行操作。

 

自定义Husky配置

说明:添加自定义到基本Husky机器人配置。

关键词: ClearpathHusky

教学级: 中级

注意:这些教程假设您熟悉ROScatkin构建系统。使用请熟悉ROScatkin教程。

目录

1. 环境变量

2. 添加源工作区

3. 机器人说明

4. 网络配置

如果从以前的ROS版本升级,您现在应该从备份Husky配置重新检查您的备份文件,以确定是否有任何需要在您的平台上配置的自定义。

环境变量

Husky的标准外设可以使用这些环境变量进行配置,以添加到机器人范围的安装文件(/etc/ros/setup.bash)中。这些环境变量在引导时加载。

变量

默认

描述

ROBOT_NETWORK

none

配置网络接口以触发husky-core作业,并初始化ROS_IP。如果未设置,husky-core将定义ROS_HOSTNAME(请参阅网络设置

HUSKY_IMU_PORT

/ dev / clearpath / imu

用于Husky UM6 IMU的端口(如果存在),必须在运行husky_brupup安装之前设置

HUSKY_IMU_XYZ

0.19 0.0 0.149

Husky IMU标准安装位置的姿势偏移

HUSKY_IMU_RPY

0.0 -1.5708 3.1416

Husky IMU标准安装位置的方向偏移

HUSKY_NAVSAT_PORT

/ dev / clearpath / gps

用于Husky GPS的端口(如果存在),必须在运行husky_brupup安装之前设置

HUSKY_NAVSAT_BAUD

19200

HuskyGPS的波特率

HUSKY_UR5_IP

none

UR5机械手的IP地址(如果存在)必须在运行husky_brupup install之前设置

HUSKY_UR5_ENABLED

false

启用/禁用UR5操纵器。

HUSKY_LMS1XX_IP

none

SICK LMS1XX LIDAR的IP地址(如果存在)必须在运行husky_brupup install之前设置

HUSKY_LMS1XX_ENABLED

false

启用/禁用SICK LMS1XX LIDAR

HUSKY_LMS1XX_XYZ

0.2206 0.0 0.00635

SICK LMS1XX LIDAR的姿势偏移

HUSKY_LMS1XX_RPY

0.0 0.0 0.0

SICK LMS1XX LIDAR的方向偏移

HUSKY_TOP_PLATE_ENABLED

true

启用/禁用标准Husky顶板。

FLIR_PTU_PENABLED

false

启用将FLIR PTU添加到Dual UR5 arm husky配置。必须将HUSKY_DUAL_UR5_ENABLED设置为true才能使其生效。

HUSKY_DUAL_UR5_ENABLED

false

启用使用双UR5手臂Husky配置与散装头。这将产生具有2个胳膊的Husky,并且与MoveIt一起使用

ROBOTIQ_GRIPPERS_ENABLED

false

启用为双UR5麋鹿使用robotiq夹子。这将把夹子放在左右臂上。DUAL UR5 Enabled必须设置为true

HUSKY_LASER_ENABLED

true

启用以使用默认的Husky激光器。这必须禁用,以正确使用DUAL UR5Husky创建

HUSKY_LASER_PARENT_LINK

top_plate_link

设置此项以更改Husky上使用的LIDAR的父级。如果您使用非标准配置,这很有用。设置为bulkhead_link的双重ur5配置

HUSKY_KINECT_XYZ

xyz

设置为任何xyz你想为Huskykinect

HUSKY_KINECT_RPY

rpy

设置为任何rpy你想要的Huskykinect附件

BUMBLEBEE_ENABLED

false

如果启用flir PTU,请将此项设置为启用FLIR_PTU上的大黄蜂附件

VELODYNE_VLP16_ENABLED

false

设置此项以启用在dual ur5设置上的velodyne vlp 16 3d成像系统。

ROBOTIQ_FT_300_ENABLED

false

设置此项以在启用双重ur5时在左和右ur5臂上启用robotiq ft 300

添加源工作区

配置非标准外设需要机器人PC上的源工作区。

1. 创建新工作区:

 $ mkdir -p/ husky_indigo_ws / src

2. 将任何自定义源文件包添加到/ husky_indigo_ws / src目录。

3. 添加软件包后,请确保安装了所有必需的依赖关系:

 $ cd/ husky_indigo_ws /

 $ rosdep install --from-paths src --ignore-src --rosdistro indigo -y

4. 构建工作区:

5.  $ cd/ husky_indigo_ws /

 $ catkin_make

6. 修改您的机器人范围的安装文件(/etc/ros/setup.bash)来源您的新工作区,而不是基本的indigo安装:

7.  ... ...

 source /home/administrator/husky_indigo_ws/devel/setup.bash

8. 重新初始化您的环境,以便选择您的新工作空间:

 $ source /etc/ros/setup.bash

9. 使用定制包中的启动文件增强husky-core作业:

 $ rosrun robot_upstart install my_custom_package / launch --job husky-core --augment

机器人说明

ROS Hydro和更早版本中,在客户的主文件夹中的工作空间中为客户提供了自定义Husky描述(URDF)。由于Husky URDF已经对Indigo进行了一些更改,因此之前的ROS版本中的机器人描述将需要略微调整。

要创建自定义Husky配置,请将husky_customization存储库分配到您的GitHub帐户,并将该fork克隆到您的工作空间:

· $ cd/ husky_indigo_ws / src

· $ git clone https://github.com/<username>/husky_customization.git -b indigo-devel

· $ cd/ husky_indigo_ws

· $ catkin_make

· $ source devel / setup.bash

要修改您的HuskyURDF描述(请参阅ROS URDF教程),请编辑husky_customization / husky_custom_description / urdf / custom_description.urdf.xacro文件。跑roslaunch husky_viz view_model.launch看到您的自定义模型rviz

要修改您的Husky的仿真配置(参见GazeboURDF教程),请编辑husky_customization / husky_custom_gazebo / urdf / custom_description.gazebo.xacro文件。运行roslaunch husky_gazebo husky_playpen.launch看看你的自定义Gazebo配置在行动!

一旦你完成了Husky配置的自定义,不要忘记提交并将更改推回到你的GitHub存储库。

网络配置

如果从以前的ROS版本升级,您的旧的/ etc / network / interfaces文件可能包含机器人的静态IP绑定或应在新安装程序上复制的其他自定义。

 

仿真Husky

说明:如何使用Gazebo仿真器来启动仿真的Husky机器人。

关键词: ClearpathHusky

教程级别: BEGINNER

下一教程: Husky接口

Husky可以在几个环境中使用husky_gazebo软件包进行仿真。开始仿真:

1. 确保安装了仿真软件包:

$ sudo apt-get install ros-indigo-husky-simulator

2. 设置环境变量HUSKY_GAZEBO_DESCRIPTION

$ export HUSKY_GAZEBO_DESCRIPTION = $rospack find husky_gazebo/urdf/description.gazebo.xacro

3. 运行两个提供的仿真环境之一:

i. 在一个空世界仿真Husky。您可以使用Gazebo控件(Gazebo教程 构建世界)向这个世界添加新对象。

$ roslaunch husky_gazebo husky_empty_world.launch

ii. Clearpath设计的世界中仿真Husky。这是导航教程的基本环境。它需要一些时间开始,因为仿真器将需要从Gazebo服务器下载资源。

$ roslaunch husky_gazebo husky_playpen.launch

4. 选择自己的世界来仿真Husky使用roslaunchGazebo)。

$ roslaunch husky_gazebo husky_empty_world.launch world_name= worlds / willowgarage.world

 

Husky通信

说明:如何在桌面上显示,控制和与真实或仿真的Husky机器人进行通信。

关键词: ClearpathHusky

教程级别: BEGINNER

仿真和真实的Husky机器人都开放了相同的ROS接口,并可以以相同的方式进行交互。请确保已安装Husky的桌面软件包:

$ sudo apt-get install ros-indigo-husky-desktop

可视化

您可以使用以下命令启动预配置的rviz实例:

$ roslaunch husky_viz view_robot.launch

控制

有三种快速方式发送您的Husky控制命令:

1. 使用提供的Logitech游戏手柄。左仿真杆控制速度和转动速率,而“A”“X”按钮分别激活常规和额外速度模式。

2. 使用上面的rviz实例。如果在顶部工具栏中选择了 交互”选项,交互式标记将显示在Husky周围,并可用于控制速度。

3. rqt_robot_steering插件。运行rqt命令,从顶部菜单中选择Plugins-> Robot Tools-> Robot Steering

Husky使用twist_mux将四个单独的geometry_msgs / Twist控制通道混合到husky_velocity_controller / cmd_vel主题中。

这些通道是(按优先级递减的顺序):

话题

描述

优先

joy_teleop / cmd_vel

操纵杆teleop输入

10

twist_marker_server / cmd_vel

交互式标记teleop输入

8

move_base / cmd_vel

自主运动输入,用于husky_navigation样本

2

cmd_vel

其他外部输入

1

其他速度通道可以在twist_mux.yaml中定义,也可以通过管道传递到优先级最低的cmd_vel主题。

测程

Husky发布odometry /过滤主题的odometry信息,如nav_msgs / Odometry消息。这些由ekf_localization_node生成ekf_localization_node使用扩展卡尔曼滤波器(EKF)处理来自多个传感器源的数据。这包括来自轮编码器和IMU的数据(如果可用)。

话题

资源

描述

husky_velocity_controller / odom

husky_node

从Husky编码器读取的原始里程表

imu / data

imu_filter_madgwick

来自IMU的定向估计

odometry /过滤

ekf_localization_node

熔融光度测量估计(编码器和IMU)

附加里程计信息源可以被添加到EKF的在localization.yaml

诊断

(仅限非仿真)

Husky ROS标准/诊断主题上提供了硬件和软件系统诊断。查看这些消息的最佳方法是使用rqt_runtime_monitor插件。运行rqt命令,从顶部菜单中选择Plugins-> Robot Tools-> Runtime Monitor

相同的信息也作为状态主题上的husky_msgs / HuskyStatus消息发布。

 

Husky移动基地演示

描述:使用基本move_base设置运行Husky ,没有映射或本地化。

关键词: ClearpathHusky

教程级别: BEGINNER

下一个教程: Husky AMCL Demo

本教程将向您介绍如何使用move_base在仿真Husky或工厂标准Husky上执行基本自主计划和移动,并使用激光扫描器发布扫描主题。

要使此演示适合您自己的Husky,您可能需要克隆husky_navigation存储库,并修改相关参数。要了解move_base导航堆栈,请参阅导航教程

说明

1. 请确保已安装Husky导航演示包:

$ sudo apt-get install ros-indigo-husky-navigation ros-indigo-husky-gazebo ros-indigo-husky-viz

2. 设置环境变量HUSKY_GAZEBO_DESCRIPTION

$ export HUSKY_GAZEBO_DESCRIPTION = $rospack find husky_gazebo/urdf/description.gazebo.xacro

3. 在三个独立的终端窗口中:

i. 启动Clearpath配置的Husky仿真环境:

$ roslaunch husky_gazebo husky_playpen.launch

ii. 启动Clearpath配置的rviz 可视化程序:

$ roslaunch husky_viz view_robot.launch

iii. 启动move_base演示:

$ roslaunch husky_navigation move_base_mapless_demo.launch

4. Rviz可视化工具中,确保导航组中的可视化工具已启用。

5. 使用顶部工具栏中的2D导航目标工具在可视化器中选择移动目标。确保选择未占用(深灰色)或未探测(浅灰色)位置。

6. 注意,在该示例中,机器人没有绝对定位源,并且位置估计将相对于世界漂移。有关本地化的演示,请参阅下一个教程。

 

HuskyAMCL演示

说明:使用move_base设置运行Husky ,使用amcl进行本地化。

关键词: ClearpathHusky

教程级别: BEGINNER

下一个教程: Husky Gmapping Demo

本教程将向您介绍如何使用move_base with amcl在仿真Husky上进行自定义计划和移动,或者使用激光扫描器发布扫描主题的工厂标准Husky 

要使此演示适合您自己的Husky,您可能需要克隆husky_navigation存储库,并修改相关参数。要了解move_baseamcl导航堆栈,请参阅导航教程

说明

1. 请确保已安装Husky导航演示包:

$ sudo apt-get install ros-indigo-husky导航

2. 在三个独立的终端窗口中:

i. 启动Clearpath配置的Husky仿真环境:

$ roslaunch husky_gazebo husky_playpen.launch

ii. 启动Clearpath配置的rviz 可视化程序:

$ roslaunch husky_viz view_robot.launch

iii. 启动amcl demo

$ roslaunch husky_navigation amcl_demo.launch

3. Rviz可视化工具中,确保导航组中的可视化工具已启用。

4. 使用二维姿估算顶部工具栏中的工具给AMCL初始姿势估计。没有初始估计,蒙特卡罗定位方法不可能收敛正确的姿态。

5. 使用顶部工具栏中的2D导航目标工具在可视化器中选择移动目标。确保选择未占用(深灰色)或未探测(浅灰色)位置。

6. 注意,在该示例中,机器人使用来自激光扫描器的数据来校正融合的里程测量估计,并且减轻漂移。该AMCL节点使用这个环境的预先生成的地图进行比较的传入扫描。有关本地化和映射的演示,请参阅下一教程。

 

HuskyGmapping演示

描述:使用move_base设置运行Husky ,使用gmapping映射和本地化(SLAM)。

关键词: ClearpathHusky

教程级别: BEGINNER

下一个教程: Husky Frontier Exploration Demo

本教程介绍如何使用move_basegmapping在同步本地化和映射(SLAM),仿真Husky或工厂标准Husky上使用激光扫描器发布扫描主题来执行自主规划和移动。

要使此演示适合您自己的Husky,您可能需要克隆husky_navigation存储库,并修改相关参数。要了解move_basegmapping导航堆栈,请参阅导航教程

说明

1. 请确保已安装Husky导航演示包:

$ sudo apt-get install ros-indigo-husky导航

2. 在三个独立的终端窗口中:

i. 启动Clearpath配置的Husky仿真环境:

$ roslaunch husky_gazebo husky_playpen.launch

ii. 启动Clearpath配置的rviz 可视化程序:

$ roslaunch husky_viz view_robot.launch

iii. 启动gmapping演示:

$ roslaunch husky_navigation gmapping_demo.launch

3. Rviz可视化工具中,确保导航组中的可视化工具已启用。

4. 使用顶部工具栏中的2D导航目标工具在可视化器中选择移动目标。确保选择未占用(深灰色)或未探测(浅灰色)位置。

5. 随着机器人移动,你应该看到灰色的静态地图(地图主题)增长。偶尔,gmapping算法将relocalize机器人,在导致离散跳跃地图 - > 奥多姆变换。

6. 要保存生成的映射,您可以运行map_saver实用程序:

$ rosrun map_server map_saver -f <filename>

 

Husky边境勘探演示

描述:使用move_base设置运行Husky ,使用frontier_exploration进行勘探规划,并使用gmapping进行映射和本地化(SLAM)。

关键词: ClearpathHusky

教程级别: BEGINNER

本教程介绍如何使用move_basegmappingfrontier_exploration来执行自主计划移动,以及同时定位和映射(SLAM),在仿真Husky或工厂标准Husky扫描主题上发布激光扫描仪。

要使此演示适合您自己的Husky,您可能需要克隆husky_navigation存储库,并修改相关参数。要了解move_basegmappingfrontier_exploration导航堆栈,请参阅导航教程

说明

1. 请确保已安装Husky导航演示包:

$ sudo apt-get install ros-indigo-husky导航

2. 在三个独立的终端窗口中:

i. 启动Clearpath配置的Husky仿真环境:

$ roslaunch husky_gazebo husky_playpen.launch

ii. 启动Clearpath配置的rviz 可视化程序:

$ roslaunch husky_viz view_robot.launch

iii. 启动frontier_exploration演示:

$ roslaunch husky_navigation exploration_demo.launch

3. Rviz可视化工具中,确保导航组中的可视化工具已启用。

4. 使用顶部工具栏中的工具在地图上绘制封闭的多边形,Husky应该探索。观察终端窗口的说明。

5. 随着机器人移动,你应该看到灰色的静态地图(地图主题)增长。偶尔,gmapping算法将relocalize机器人,在导致离散跳跃地图 - > 奥多姆变换。

6. 当探索目标完成后,您将在终端窗口中看到反馈消息。如果你愿意,你现在可以发出一个新的勘探目标。

7. 要保存生成的映射,您可以运行map_saver实用程序:

$ rosrun map_server map_saver -f <filename>

 

Husky UR5移动操纵演示(仿真)

描述:运行具有移动操作功能的Husky UR5

关键词: Clearpath HuskyHuskyUR5Mobile ManipulationTelepre

教程级别: 

 

Husky UR5移动操作教程将向您介绍如何使用GazeboRVizMoveItUR5手臂来操作移动操作机器人。将有机器人的完全控制和致动,为这个机器人编写的软件可以很容易地转换为真实的世界行动与真正的HuskyUR5机器人由Clearpath机器人。

2.安装

确保您已经安装了husky_simulator软件包和husky_ur5_moveit_config软件包。本教程还假设您的系统上安装了ROSGazeboRViz

sudo apt-get install ros-indigo-husky- * && ros-indigo-ur-kinematics

如果用户希望使用自由规划模式和联合限制模式(截至41日,用于规划的universal_robot包尚未在debs中更新,因此必须使用source),请安装universal_robot的源包,并使用它去ovveride deb安装。

此外,确保您的机器上有最新的软件包ros_controluniversal_robot debs。(如果你得到关于hardwareInterface和关节缺失的错误,你将需要更改你的control_ur5.yaml文件里面husky_control。请下载hadky源包。这是破碎,修复,截至2015516日,但仍然没有已公布给公众的Indigo debs。)

mkdir -p devel_ws / src && cd devel_ws / src && catkin_init_workspace

git clone -b jade-devel https://github.com/ros-planning/moveit_ros

git clone -b jade-devel https://github.com/ros-planning/moveit_msgs

git clone -b indigo-devel https://github.com/ros-planning/moveit_core

catkin_make安装

在运行本教程中的每个命令之前,运行此命令或将其添加到/ .bashrc文件:

source/ devel_ws / devel / setup.bash

3.打开GazeboHusky

运行启动文件,这将带来与Husky + UR5 Gazebo

roslaunch husky_gazebo husky_playpen.launch ur5_enabled= true laser_enabled= false

它将看起来像这样:(注意夹具释放没有被推入debs,所以它不会有夹子)

 

4.将手臂置于初始位置

如果手臂在前面产生,为了安全原因,可能存储被禁用。运行stow脚本回家的手臂,这将移动它在Gazebo仿真。

rosrun husky_control stow_ur5

5.启动MoveItRViz

为此:

roslaunch husky_ur5_moveit_config husky_ur5_planning_execution.launch sim= true limited= true

roslaunch husky_ur5_moveit_config moveit_rviz.launch config= true

这将带来一个屏幕,Husky像这样:

 

6移动Husky

打开交互式标记服务器:

rosrun interactive_marker_twist_server marker_server

并确保添加交互式标记插件到RViz通过单击添加,然后找到交互式标记。请务必将主题设置为正确的主题,否则您将无法使用它们移动Husky

与机器人的接口是超级简单!看到场景中的标记?只需点击它们就可以移动机器人。蓝色标记将控制它的旋转。

 

红色标记将控制其向前和向后运动

 

7.移动Husky的手臂

在使用Husky的运动能力后,现在我们可以看看如何移动其手臂。在RViz的左边,你会看到一个看起来像这样的面板。确保选择计划

 

现在单击并拖动在RViz中的末端执行器,它将突出显示当您的鼠标在它:

 

在下一张图片中有很多事情。我会解释。橙色手臂是手臂的目标位置。拖动球体允许您将末端执行器移动到所需位置。运动求解器将移动橙色臂,以满足您放置球体的约束。靠近球体的标记将允许你精确地将球体精确到任何你想要的。正确的着色手臂是手臂当前在真实世界中定位的地方(但在这种情况下,Gazebo仿真)。

 

现在,在计划选项卡中,按计划并执行。这将计划手臂采取的路径,以将其移动到橙色目标状态。执行将与机器人上的控制器交互,将其移动到该位置。

 

注意,在我按下计划和执行之后,手臂在仿真和可视化软件中移动。

 

 


----


文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。

原文链接:zhangrelay.blog.csdn.net/article/details/59489246

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。