ROS导航功能包示例husky amcl gmapping slam exploration
此功能包包含如下文件:
结构如下:
$ tree -L 2
.
├── CMakeLists.txt -> /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake
├── husky_base
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── config
│ ├── include
│ ├── launch
│ ├── package.xml
│ └── src
├── husky_bringup
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── config
│ ├── debian
│ ├── env-hooks
│ ├── launch
│ ├── package.xml
│ ├── scripts
│ └── udev
├── husky_control
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── config
│ ├── launch
│ └── package.xml
├── husky_description
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── launch
│ ├── meshes
│ ├── package.xml
│ └── urdf
├── husky_desktop
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ └── package.xml
├── husky_gazebo
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── launch
│ ├── package.xml
│ └── worlds
├── husky_msgs
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── msg
│ └── package.xml
├── husky_navigation
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── config
│ ├── launch
│ ├── maps
│ └── package.xml
├── husky_robot
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ └── package.xml
├── husky_simulator
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ └── package.xml
└── husky_viz├── CHANGELOG.rst├── CMakeLists.txt├── launch├── package.xml└── rviz
按官网介绍,安装并配置后,启动示例如下:
$ roslaunch husky_gazebo husky_empty_world.launch$ roslaunch husky_viz view_robot.launch$ roslaunch husky_navigation exploration_demo.launch
机器人在给定区域内自主探索绘制地图。下面简单看下这三个启动文件:
<launch><arg name="world_name" default="worlds/empty.world"/><arg name="laser_enabled" default="true"/><arg name="kinect_enabled" default="false"/><include file="$(find gazebo_ros)/launch/empty_world.launch"><arg name="world_name" value="$(arg world_name)"/> <!-- world_name is wrt GAZEBO_RESOURCE_PATH environment variable --><arg name="paused" value="false"/><arg name="use_sim_time" value="true"/><arg name="gui" value="true"/><arg name="headless" value="false"/><arg name="debug" value="false"/></include><include file="$(find husky_gazebo)/launch/spawn_husky.launch"><arg name="laser_enabled" value="$(arg laser_enabled)"/><arg name="kinect_enabled" value="$(arg kinect_enabled)"/></include></launch>
启动一个仿真环境,激光和深度传感器有效。
<launch><node name="rviz" pkg="rviz" type="rviz" args="-d $(find husky_viz)/rviz/robot.rviz" output="screen"/>
</launch>
启动rviz。
<launch><!--- Run gmapping --><include file="$(find husky_navigation)/launch/gmapping.launch" /><!--- Run Move Base --><include file="$(find husky_navigation)/launch/move_base.launch" /><!-- Run Frontier Exploration --><include file="$(find husky_navigation)/launch/exploration.launch" /></launch>
exploration自主地图探索包含三个功能gmapping,move_base,exploration。
其中exploration.launch使用frontier_exploration进行地图探索:
<launch><node pkg="frontier_exploration" type="explore_client" name="explore_client" output="screen"/><node pkg="frontier_exploration" type="explore_server" name="explore_server" output="screen"><param name="frequency" value="1.0"/><!-- Should be less than sensor range --><param name="goal_aliasing" value="2.0"/><rosparam file="$(find husky_navigation)/config/costmap_common.yaml" command="load" ns="explore_costmap" /><rosparam file="$(find husky_navigation)/config/costmap_exploration.yaml" command="load" ns="explore_costmap" /></node></launch>
graph:
tf-tree:
--附录--来源官网
Husky
ROS软件维护者:Clearpath机器人
目录
1. Husky
1. 安装
2. 用法
3. 演示应用程序
1. 导航
2. 操纵
4. 包装组件
Husky是一种坚固的户外无人地面车辆(UGV),适用于研究和快速原型应用。Husky完全支持ROS - 所有的软件包都可以在Husky github组织中获得。
有关更多信息或接收报价,请访问我们的在线。
安装
这些教程假设你对ROS和catkin构建系统很方便。使用请熟悉ROS和catkin教程。
这些教程将指导您使用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_robot: | husky_base | husky_bringup |
husky_simulator: | husky_gazebo |
husky_desktop: | husky_viz |
共同: | husky_control | husky_description | husky_msgs |
应用: | husky_navigation | husky_ur5_moveit_config |
媒体
· Husky:极端的视觉教学和重复
备份Husky配置
说明:备份Husky机器人PC以保留现有/出厂配置。
关键词: ClearpathHusky
教学级: 中级
下一教程: 安装Husky软件
将Clearpath Husky升级到ROS Indigo是一个简单的过程,但是重要的是要了解每个Husky是不同的,我们的机器人匠已经对你的规格进行了定制。
请花时间了解这些修改是什么,以及如何重新安装Ubuntu Trusty / ROS Indigo。
执行备份
1. 作为故障保护,请制作机器人硬盘驱动器的映像。如果您需要还原到先前的配置,则应始终能够还原此图像。
i. 最简单的方法是将可移动(USB或类似)硬盘驱动器连接到机器人PC,或拔下机器人硬盘驱动器并将其插入PC或工作站。
ii. 然后,您可以使用诸如CloneZilla或dd之类的工具将机器人硬盘驱动器的备份映像写入另一个硬盘驱动器。
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启动文件。该脚本还将检测您已安装的任何标准外围设备(IMU,GPS等),并添加它们的服务。
测试基本配置
1. 要测试您的配置,请使用以下命令启动后台服务:
$ sudo service husky-core start
2. 该COMM您Husky光应该由红变绿。您可以通过检查日志来检查服务是否已正确启动:
$ sudo tail /var/log/upstart/husky-core.log -n 30
3. 你的Husky现在应该接受你的操纵杆的命令。该服务将在您每次启动您的Husky的电脑时自动启动。
校准磁力计
· Husky将在校准期间自动旋转。确保所有外部电缆已拔下,Husky在1米半径范围内有无障碍的移动空间。
如果您的Husky安装了UM6 IMU,则必须先校准磁力计的磁偏差,然后再用于姿态估计。
1. 确保husky-core服务正在运行。
2. 通过ssh在Husky计算机上远程执行校准脚本:
rosrun husky_bringup calibrate_compass
3. 按照屏幕上的说明进行操作。
自定义Husky配置
说明:添加自定义到基本Husky机器人配置。
关键词: ClearpathHusky
教学级: 中级
注意:这些教程假设您熟悉ROS和catkin构建系统。使用请熟悉ROS和catkin教程。
目录
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
要修改您的Husky的URDF描述(请参阅ROS URDF教程),请编辑husky_customization / husky_custom_description / urdf / custom_description.urdf.xacro文件。跑roslaunch husky_viz view_model.launch看到您的自定义模型rviz。
要修改您的Husky的仿真配置(参见Gazebo的URDF教程),请编辑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(使用roslaunch与Gazebo)。
$ 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_base,amcl和导航堆栈,请参阅导航教程。
说明
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_base与gmapping在同步本地化和映射(SLAM),仿真Husky或工厂标准Husky上使用激光扫描器发布扫描主题来执行自主规划和移动。
要使此演示适合您自己的Husky,您可能需要克隆husky_navigation存储库,并修改相关参数。要了解move_base,gmapping和导航堆栈,请参阅导航教程。
说明
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实用程序:
o $ rosrun map_server map_saver -f <filename>
Husky边境勘探演示
描述:使用move_base设置运行Husky ,使用frontier_exploration进行勘探规划,并使用gmapping进行映射和本地化(SLAM)。
关键词: ClearpathHusky
教程级别: BEGINNER
本教程介绍如何使用move_base与gmapping和frontier_exploration来执行自主计划移动,以及同时定位和映射(SLAM),在仿真Husky或工厂标准Husky与扫描主题上发布激光扫描仪。
要使此演示适合您自己的Husky,您可能需要克隆husky_navigation存储库,并修改相关参数。要了解move_base,gmapping,frontier_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实用程序:
o $ rosrun map_server map_saver -f <filename>
Husky UR5移动操纵演示(仿真)
描述:运行具有移动操作功能的Husky UR5。
关键词: Clearpath Husky,HuskyUR5,Mobile Manipulation,Telepre
教程级别:
Husky UR5移动操作教程将向您介绍如何使用Gazebo,RViz,MoveIt和UR5手臂来操作移动操作机器人。将有机器人的完全控制和致动,为这个机器人编写的软件可以很容易地转换为真实的世界行动与真正的HuskyUR5机器人由Clearpath机器人。
2.安装
确保您已经安装了husky_simulator软件包和husky_ur5_moveit_config软件包。本教程还假设您的系统上安装了ROS,Gazebo和RViz。
sudo apt-get install ros-indigo-husky- * && ros-indigo-ur-kinematics
如果用户希望使用自由规划模式和联合限制模式(截至4月1日,用于规划的universal_robot包尚未在debs中更新,因此必须使用source),请安装universal_robot的源包,并使用它去ovveride deb安装。
此外,确保您的机器上有最新的软件包ros_control和universal_robot debs。(如果你得到关于hardwareInterface和关节缺失的错误,你将需要更改你的control_ur5.yaml文件里面husky_control。请下载hadky源包。这是破碎,修复,截至2015年5月16日,但仍然没有已公布给公众的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.打开Gazebo和Husky
运行启动文件,这将带来与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.启动MoveIt&RViz
为此:
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仿真)。
现在,在计划选项卡中,按计划并执行。这将计划手臂采取的路径,以将其移动到橙色目标状态。执行将与机器人上的控制器交互,将其移动到该位置。
注意,在我按下计划和执行之后,手臂在仿真和可视化软件中移动。
----