参考blog: https://blog.csdn.net/sujun3304/article/details/18794077
kDevelop IDE设置 https://blog.csdn.net/p942005405/article/details/75715288
键盘控制s_cmdPub,输出cmd_vel(geometry_msgs包):
CMakeList.txt
cmake_minimum_required(VERSION 2.8.3)
project(s_move)
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
geometry_msgs
)
generate_messages(DEPENDENCIES geometry_msgs)
catkin_package(
CATKIN_DEPENDS geometry_msgs
)
add_executable(s_cmdPub src/s_cmdPub.cpp)
target_link_libraries(s_cmdPub ${catkin_LIBRARIES})
include_directories(
${catkin_INCLUDE_DIRS}
)
package.xml
<?xml version="1.0"?>
<package format="2">
<name>s_move</name>
<version>0.0.0</version>
<description>The s_move package</description>
<maintainer email="@todo.todo"></maintainer>
<license>TODO</license>
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>geometry_msgs</build_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rospy</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<build_export_depend>geometry_msgs</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>std_msgs</exec_depend>
<exec_depend>geometry_msgs</exec_depend>
<export>
</export>
</package>
动作部分:
1、特定动作(无map)
基于base_link的动作组合:走直线,走方格,转圈
part1 目标g分解,根据输入命令参数形成目标流(或使用既有的目标流)
part2 通过直走x距离func1、转弯x角度func2组合完成 g。
part3 如何确定是否完成g,只能依靠里程计信息(基于base_link坐标系)。
2、基于map的特定动作
基于map的动作组合:到map某点
part1 基于输入命令从保存的地点信息中
控制部分:
1、分解语音,指向相应指令,返回指向结果。
2、保存目前地点信息。
3、开机后尝试在localmap中移动,完成amcl定位后,返回信息
4、将指令处理情况合成语音输出
问题记录:
1、动作goal发布给move_base?