课程同步视频:
基于激光雷达的行人检测:编写节点,对激光雷达信息进行分段分析,设计简单的行人检测算法,确定行人在相对于机器人的位姿。控制机器人转向行人,然后移动靠近行人。
前提:要求已经完成了实验2(spark机器人控制(2)--编写节点完成对机器人的控制)及实验5(激光雷达标定)。
步骤1:
新建一个终端,进入simple_nodes包(注,此处改为自己所建立的包)
$roscd simple_nodes
注:执行上述指令后,当前目录应该为~/ros_tut/src/simple_nodes$,在此基础上继续执行以下指令
$cd src
步骤2:
将follow_me01.cpp下载(拷贝至该当前目录,拷贝的方法,通过scp命令:台式机与spark联通后,cmd启动台式机终端,转到follow_me01.cpp文件所在的目录,通过下面的指令进行复制:
scp follow_me01.cpp spark@10.42.0.1:~/ros_tut/src/simple_nodes/src
按提示输入yes,密码输入spark )
拷贝成功后,在spark机器人端通过ls命令可以看到follow_me01.cpp
$cd ..
$gedit CMakeLists.txt
将下面的两行加入到文件末尾,然后保存文件并退出编辑
add_executable(follow_me01 src/follow_me01.cpp)
target_link_libraries(follow_me01 ${catkin_LIBRARIES})
$cd ~/ros_tut
$catkin_make
构建成功后继续后面的步骤,否则根据提示信息修改源程序,再通过步骤1来构建。
步骤2:测试节点
新开一个终端,启动机器人建图节点
$roslaunch spark_slam 2d_slam.launch
确保机器人在一个比较空阔的地方,周围1米内没有障碍。
$rosrun simple_nodes follow_me01 0.4 1
走近机器人约0.8m处,观测机器人的行为以及follow_me01执行终端的提示。
步骤3:开放性扩展。follow_me01对行人的检测并不是十分准确,修改其逻辑或设计新的行人检测算法(或更好的特征)来进行更精确的行人检测及跟踪。
步骤4:开发性扩展。查阅基于激光雷达的行人检测与跟踪的相关文献,对现有研究进行综述总结,实现并改进。
结合自己的设计提出新的算法。

