当前位置: 首页 > news >正文

中企动力建设网站百度排名优化专家

中企动力建设网站,百度排名优化专家,wordpress 子主题目录,莱芜都市人才网第一种#xff1a;在自己的项目中将点云通过ros的topic发布#xff0c;用octomap_server订阅点云消息#xff0c;在octomap_server中生成ocTree 再用rviz进行可视化。 创建工作空间#xff0c;记得source mkdir temp_ocotmap_test/src cd temp_ocotmap_test catkin_make…第一种在自己的项目中将点云通过ros的topic发布用octomap_server订阅点云消息在octomap_server中生成ocTree 再用rviz进行可视化。 创建工作空间记得source mkdir temp_ocotmap_test/src cd temp_ocotmap_test catkin_make source devel/setup.bash 将这两个功能包下载放进自己的ros项目 再创建一个用于发布点云的功能包 cd src catkin_create_pkg my_pkg std_msgs roscpp 形成这样的目录结构 这里使用Octomap 在ROS环境下实时显示_ros octomap-CSDN博客 的点云数据进行说明。 进入自己的功能包创建一个data文件将那位博主的点云文件test.pcd放进data文件夹 cd my_pkg mkdir data 接下来写自己节点的cpp文件和自己功能包的CMakeLists.txt cd my_pkg/src vim my_pkg.cpp my_pkg.cpp写入如下内容 #includeiostream #includestring #include stdlib.h #include stdio.h #include sstream #include vector#includeros/ros.h #includepcl/point_cloud.h #includepcl_conversions/pcl_conversions.h #includesensor_msgs/PointCloud2.h #includepcl/io/pcd_io.h#include octomap_msgs/OctomapWithPose.h #include octomap_msgs/Octomap.h #include geometry_msgs/Pose.h#include octomap/octomap.h #include octomap_msgs/Octomap.h #include octomap_msgs/conversions.h#include geometry_msgs/TransformStamped.h#define TESTCLOUDPOINTS 1 #define TESTOCTOTREE 0int main (int argc, char **argv) { std::string topic,path,frame_id;int hz5;ros::init (argc, argv, publish_pointcloud); ros::NodeHandle nh; nh.paramstd::string(path, path, /home/username/Downloads/temp_for_run_octomap_server/src/publish_pointcloud/data/test.pcd);nh.paramstd::string(frame_id, frame_id, your_frame_id);nh.paramstd::string(topic, topic, your_pointcloud_topic);nh.paramint(hz, hz, 5);// load cloudpointpcl::PointCloudpcl::PointXYZ pcl_cloud; pcl::io::loadPCDFile (path, pcl_cloud); #if TESTCLOUDPOINTSros::Publisher pcl_pub nh.advertisesensor_msgs::PointCloud2 (topic, 10); // 转换成ROS下的数据类型 通过topic发布sensor_msgs::PointCloud2 output; pcl::toROSMsg(pcl_cloud, output);output.header.stampros::Time::now();output.header.frame_id frame_id;std::coutpath pathstd::endl;std::coutframe_id frame_idstd::endl;std::couttopic topicstd::endl;std::couthz hzstd::endl;ros::Rate loop_rate(hz); while (ros::ok()) { pcl_pub.publish(output); ros::spinOnce(); loop_rate.sleep(); }#endif#if TESTOCTOTREEros::Publisher octomap_pub nh.advertiseoctomap_msgs::Octomap(topic, 1);octomap::OcTree tree(0.1); // You can adjust the resolution as neededfor (const auto point : pcl_cloud.points) {tree.updateNode(point.x, point.y, point.z, true);}// Publish the octree as an OctoMap messageoctomap_msgs::Octomap octomap_msg;octomap_msgs::fullMapToMsg(tree, octomap_msg);// Assuming you have a publisher for the octomapoctomap_msg.header.stampros::Time::now();octomap_msg.header.frame_id frame_id;std::coutpath pathstd::endl;std::coutframe_id frame_idstd::endl;std::couttopic topicstd::endl;std::couthz hzstd::endl;ros::Rate loop_rate(hz); while (ros::ok()) { octomap_pub.publish(octomap_msg); ros::spinOnce(); loop_rate.sleep(); }#endifreturn 0; } CMakeLists.txt这样写 cmake_minimum_required(VERSION 3.0.2) project(my_pkg)## Compile as C11, supported in ROS Kinetic and newer # add_compile_options(-stdc11)## Find catkin macros and libraries ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) ## is used, also find other catkin packages find_package(catkin REQUIRED COMPONENTSroscppstd_msgssensor_msgsoctomap_msgsgeometry_msgs ) find_package(PCL REQUIRED) find_package(octomap REQUIRED)## System dependencies are found with CMakes conventions # find_package(Boost REQUIRED COMPONENTS system)## Uncomment this if the package has a setup.py. This macro ensures ## modules and global scripts declared therein get installed ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html # catkin_python_setup()################################################ ## Declare ROS messages, services and actions ## ################################################## To declare and build messages, services or actions from within this ## package, follow these steps: ## * Let MSG_DEP_SET be the set of packages whose message types you use in ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). ## * In the file package.xml: ## * add a build_depend tag for message_generation ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET ## * If MSG_DEP_SET isnt empty the following dependency has been pulled in ## but can be declared for certainty nonetheless: ## * add a exec_depend tag for message_runtime ## * In this file (CMakeLists.txt): ## * add message_generation and every package in MSG_DEP_SET to ## find_package(catkin REQUIRED COMPONENTS ...) ## * add message_runtime and every package in MSG_DEP_SET to ## catkin_package(CATKIN_DEPENDS ...) ## * uncomment the add_*_files sections below as needed ## and list every .msg/.srv/.action file to be processed ## * uncomment the generate_messages entry below ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)## Generate messages in the msg folder # add_message_files( # FILES # Message1.msg # Message2.msg # )## Generate services in the srv folder # add_service_files( # FILES # Service1.srv # Service2.srv # )## Generate actions in the action folder # add_action_files( # FILES # Action1.action # Action2.action # )## Generate added messages and services with any dependencies listed here # generate_messages( # DEPENDENCIES # std_msgs # )################################################ ## Declare ROS dynamic reconfigure parameters ## ################################################## To declare and build dynamic reconfigure parameters within this ## package, follow these steps: ## * In the file package.xml: ## * add a build_depend and a exec_depend tag for dynamic_reconfigure ## * In this file (CMakeLists.txt): ## * add dynamic_reconfigure to ## find_package(catkin REQUIRED COMPONENTS ...) ## * uncomment the generate_dynamic_reconfigure_options section below ## and list every .cfg file to be processed## Generate dynamic reconfigure parameters in the cfg folder # generate_dynamic_reconfigure_options( # cfg/DynReconf1.cfg # cfg/DynReconf2.cfg # )################################### ## catkin specific configuration ## ################################### ## The catkin_package macro generates cmake config files for your package ## Declare things to be passed to dependent projects ## INCLUDE_DIRS: uncomment this if your package contains header files ## LIBRARIES: libraries you create in this project that dependent projects also need ## CATKIN_DEPENDS: catkin_packages dependent projects also need ## DEPENDS: system dependencies of this project that dependent projects also need catkin_package( # INCLUDE_DIRS include # LIBRARIES my_pkg # CATKIN_DEPENDS roscpp std_msgs # DEPENDS system_lib )########### ## Build ## ############# Specify additional locations of header files ## Your package locations should be listed before other locations include_directories( # include${catkin_INCLUDE_DIRS}${PCL_INCLUDE_DIRS}${OCTOMAP_INCLUDE_DIRS} )## Declare a C library # add_library(${PROJECT_NAME} # src/${PROJECT_NAME}/my_pkg.cpp # )## Add cmake target dependencies of the library ## as an example, code may need to be generated before libraries ## either from message generation or dynamic reconfigure # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})## Declare a C executable ## With catkin_make all packages are built within a single CMake context ## The recommended prefix ensures that target names across packages dont collide add_executable(publish_pointcloud src/my_pkg.cpp)## Rename C executable without prefix ## The above recommended prefix causes long target names, the following renames the ## target back to the shorter version for ease of user use ## e.g. rosrun someones_pkg node instead of rosrun someones_pkg someones_pkg_node # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX )## Add cmake target dependencies of the executable ## same as for the library above # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})## Specify libraries to link a library or executable target against target_link_libraries(publish_pointcloud${catkin_LIBRARIES}${PCL_LIBRARIES}${OCTOMAP_LIBRARIES} )############# ## Install ## ############## all install targets should use catkin DESTINATION variables # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html## Mark executable scripts (Python etc.) for installation ## in contrast to setup.py, you can choose the destination # catkin_install_python(PROGRAMS # scripts/my_python_script # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} # )## Mark executables for installation ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html # install(TARGETS ${PROJECT_NAME}_node # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} # )## Mark libraries for installation ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html # install(TARGETS ${PROJECT_NAME} # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} # RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} # )## Mark cpp header files for installation # install(DIRECTORY include/${PROJECT_NAME}/ # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} # FILES_MATCHING PATTERN *.h # PATTERN .svn EXCLUDE # )## Mark other files for installation (e.g. launch and bag files, etc.) # install(FILES # # myfile1 # # myfile2 # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} # )############# ## Testing ## ############### Add gtest based cpp test target and link libraries # catkin_add_gtest(${PROJECT_NAME}-test test/test_my_pkg.cpp) # if(TARGET ${PROJECT_NAME}-test) # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) # endif()## Add folders to be run by python nosetests # catkin_add_nosetests(test)my_pkg.cpp中先使用 宏TESTCLOUDPOINTS发布点云数据 #define TESTCLOUDPOINTS 1 #define TESTOCTOTREE 0 定义好frame_id 和topic nh.paramstd::string(path, path, /home/.../test.pcd); nh.paramstd::string(frame_id, frame_id, your_frame_id); nh.paramstd::string(topic, topic, your_pointcloud_topic); nh.paramint(hz, hz, 5); 回到工作空间编译 cd temp_ocotmap_test caikin_make 在工作空间中运行节点 rosrun my_pkg publish_pointcloud 打开一个terminal进入工作空间新打开terminal要source一下 source devel/setup.bash 接下来要运行octomap_server通过octomap_server中的launch文件运行launch文件在octomap_server/launch运行之前要修改其中的frame_id 和topic为你自己定义的frame_id和topic launchnode pkgoctomap_server typeoctomap_server_node nameoctomap_server!-- resolution in meters per pixel --param nameresolution value0.05 /!-- name of the fixed frame, needs to be /map for SLAM --param nameframe_id typestring valueyour_frame_id /!-- max range / depth resolution of the kinect in meter --param namesensor_model/max_range value100.0 /param namelatch valuetrue /!-- max/min height for occupancy map, should be in meters --param namepointcloud_max_z value1000 /param namepointcloud_min_z value0 /!-- topic from where pointcloud2 messages are subscribed --remap from/cloud_in toyour_pointcloud_topic //node /launch 在工作空间中运行octomap_server roslaunch octomap_server octomap_mapping.launch 这时会出现 不用担心其实octree已经生成不知道为什么会显示这个因为这个问题困扰了好久 再打开一个terminal运行rviz记得提前要安装rviz的octomap 插件 rosrun rviz rviz 修改Fixed FrameAdd一个OccupancyGrid订阅/ocotmap_full这个topic就可以看到生成的octree了 第二种不使用octomap_server在自己项目中引用octomap包生成octree直接发布octree的topicrviz订阅topic进行可视化 将上面my_pkg.cpp中的宏改为 #define TESTCLOUDPOINTS 0 #define TESTOCTOTREE 1 这样就运行了直接生成octree并发布的那段代码回到工作空间编译运行节点 cd temp_ocotmap_test catkin_make rosrun my_pkg publish_pointcloud 在rviz中修改topic和frame_id便可以看到octree 以上
http://www.pierceye.com/news/482301/

相关文章:

  • 网站开发怎么找客户网站制作哪个好薇
  • 腾讯云wed服务器做网站360优化大师下载官网
  • 网站建设与管理案例教程第三版课后答案一线互联网公司有哪些
  • 微信网站后台徐州网
  • 做网站 用 显示器电话外呼系统
  • 广西房地产网站建设月夜直播视频免费观看
  • 建网站要甘肃省住房与建设厅网站首页
  • 淘宝客推广网站怎么做审计局网站建设管理
  • 能源企业 网站建设微信公众号官方平台
  • 网站建设需求登记表 免费下载开发一个app的注意事项
  • 网站跟域名是什么关系城乡建设部网站 挂证
  • 做理财网站赣州哪里可以做网站
  • 网站收益长寿做网站的电话
  • 网站推广的方式和管理方法公司注册核名
  • 帮人做钓鱼网站以及维护东莞住建局官网网站
  • 如何在百度里做推广网站个人怎样注册一家公司
  • 上海移动端网站建设西安专业做网站公司
  • 水果网站建设的策划书wordpress会员邮件通知
  • 合肥在线网站百色建设局网站
  • 梅河口市建设局网站华为网站搭建
  • gta5卖公司显示网站正在建设中公司网站制作有哪些
  • 免费推广网站大全下载c 视频播放网站开发
  • 做外贸网站维护费是多少做瞹瞹嗳视频网站
  • 国外好的网站空间台州论坛
  • 网络网站推广优化wordpress 文章 样式
  • 建设电影网站视频做暧视频网站大全
  • 深圳市建设银行网站国内产品网站
  • 东莞网站建设管理sem网络推广公司
  • seo建站平台哪家好做qq空间网站
  • 网站制作性价比哪家好中国最大的家装网站