2014-11-03 2 views
1

Я хочу переместить черепаха.ROS программирование: двигаться вперед turtlebot

Во-первых, я создал пакет внутри моих catkin_ws

$ catkin_create_pkg /..package_name../ std_msgs rospy roscpp actionlib tf geometry_msgs move_base_msgs 

Тогда я редактировать CMakeList

add_executable(myProgram src/main.cpp) and target_link_libraries(<executabletargetname>, ${catkin_LIBRARIES}) 

В-третьих, я запустить эту команду:

catkin_make 

после компиляции:

[100%] Building CXX object ileri/CMakeFiles/gg.dir/src/gg.cpp.o /home/turtlebot/catkin_ws/src/ileri/src/gg.cpp:18:2: error: ‘p’ does not name a type /home/turtlebot/catkin_ws/src/ileri/src/gg.cpp:28:2: error: expected unqualified-id before ‘try’ /home/turtlebot/catkin_ws/src/ileri/src/gg.cpp:31:3: error: expected unqualified-id before ‘catch’ make[2]: * [ileri/CMakeFiles/gg.dir/src/gg.cpp.o] Error 1 make[1]: * [ileri/CMakeFiles/gg.dir/all] Error 2

.cpp:

`geometry_msgs::PointStamped p; 
geometry_msgs::PointStamped p1; 
p.header.stamp = ros::Time(); 
std::string frame1 = "/camera_depth_optical_frame"; 
p.header.frame_id = frame1.c_str(); 

p.point.x = 0; 
p.point.y = 0; 
p.point.z = 1; // 1 meter 

std::string frame = "map"; 

try 
{ 
    listener.transformPoint(frame,p,p1); 
}catch(tf::TransformException& ex) { ROS_ERROR("exception while transforming..."); } 

// create message for move_base_simple/goal 
geometry_msgs::PoseStamped msg; 
msg.header.stamp = ros::Time(); 
std::string frame = "/map"; 
msg.header.frame_id = frame.c_str(); 
msg.pose.position = p1.point; 
msg.pose.orientation = tf::createQuaternionMsgFromYaw(0.0); 
publisher.publish(msg);` 
  • Что вы думаете об этих ошибках?
  • Есть ли проблемы с включением? Если вы так думаете, что включает в себя, я должен добавить этот код?

ответ

1

В C++ утверждения входят в функции. Похоже, что ваше заявление p.header.stamp = ros::Time(); появляется вне функции.

Ваша программа также должна содержать функцию int main() { }. Попробуйте переместить заявления внутри { }.