This page introduces the usage of set_initial_pose, including how to use 2D Pose Estimate in RVIZ to set the pose of the robot.
Choose any one below:
mkdir -p catkin_ws/src cd catkin_ws/src |
catkin_init_workspace |
cd .. catkin_make |
source devel/setup.bash |
roslaunch slamware_ros_sdk slamware_ros_sdk_server_node.launch ip_address:=10.6.128.141 // Station mode // If in AP mode, the IP address is 192.168.11.1 |
roslaunch slamware_ros_sdk view_slamware_ros_sdk_server_node.launch |
roslaunch slamware_ros_sample set_initial_pose.launch |
ros::Publisher set_pose_pub; |
ros::init(argc, argv, "set_initial_pose_node"); ros::NodeHandle nh("~"); set_pose_pub = nh.advertise<geometry_msgs::Pose>("/slamware_ros_sdk_server_node/set_pose", 10); ros::Subscriber initial_pose_sub = nh.subscribe("/initialpose", 10, initialPoseCallback); |
void initialPoseCallback(const geometry_msgs::PoseWithCovarianceStamped& msg) { ROS_INFO("receive initialpose: "); ROS_INFO("position(xyz): %.3f %.3f %.3f", msg.pose.pose.position.x , msg.pose.pose.position.y , msg.pose.pose.position.z); ROS_INFO("orientation(xyzw): %.3f %.3f %.3f %.3f", msg.pose.pose.orientation.x , msg.pose.pose.orientation.y , msg.pose.pose.orientation.z , msg.pose.pose.orientation.w); geometry_msgs::Pose _pose_msg(msg.pose.pose); set_pose_pub.publish(_pose_msg); } |