使用VERP3.6.2
安装VERP
在官网下载对应自己系统的版本。解压放在Home目录下即可。
http://www.coppeliarobotics.com/previousVersions
编译vrep_ros_bridge
最麻烦的就是编译这个bridge了,有很多坑:
- 进入官网https://github.com/lagadic/vrep_ros_bridge#installation-v-rep;的说明。checkout 代码到/home/username/catkin_ws/src,下
- 根据官网步骤设置全局路径。export VREP_ROOT_DIR=/ChangeWithyourPathToVrep/ 我设置后没有起作用,不知道什么原因。
- 最重要的编译来了。catkin_make。根据情况有各种错误提示。
- 首先会提示路径下的readme.txt无法读取,这个问题通过设置绝对地址也没有好使,只能把对应的数据手动设置,注释原有语句如下:
#file(STRINGS ${VREP_ROOT_DIR}/readme.txt README_TXT LIMIT_COUNT 1)
#string(REGEX MATCHALL "V([^\" ]+|\"[^\"]+\")" README_TXT "${README_TXT}")
#string(REGEX MATCHALL "[0-9]" README_TXT "${README_TXT}")
#list(GET README_TXT 0 VREP_VERSION_MAJOR)
#list(GET README_TXT 1 VREP_VERSION_MINOR)
#list(GET README_TXT 2 VREP_VERSION_PATCH)
set(VREP_VERSION_MAJOR 3)
set(VREP_VERSION_MINOR 6)
set(VREP_VERSION_PATCH 2)
- 可能会遇到 qu…tk…的一个包中的错误,直接cd进到这个项目的目录里 touch CATKIN_IGNORE即可,我尝试下载对应的package后还是提示这个错误,所以果断使用touch才是硬道理
- 可能会遇到提示找不到某些.h文件,本来通过设置VERP_ROOT_DIR好使的,但是没有起作用,所以只能到对应的项目文件夹里修改CMakelist.txt增加include。
include_directories(
include
${catkin_INCLUDE_DIRS}
${VREP_ROOT_DIR}/programming/include/
/home/username/V-REP_PRO_EDU_V3_6_2_Ubuntu16_04/programming/include
)
- 可能还会遇到nullptr不识别的编译错误,增加add_compile_options(-std=c++11)就可以了,以及会提示找不到头文件都在这个make文件中增加引用
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(/home/username/catkin_ws/src/vrep_ros_bridge/vrep_ros_plugin/include/vrep_ros_plugin)
include_directories( /home/username/V-REP_PRO_EDU_V3_6_2_Ubuntu16_04/programming/include)
set(SRCS
v_repExtRosBridge.cpp
porting.cpp
access.cpp
GenericObjectContainer.cpp
GenericObjectHandler.cpp
ConsoleHandler.cpp
/home/username/V-REP_PRO_EDU_V3_6_2_Ubuntu16_04/programming/common/v_repLib.cpp
)
add_compile_options(-std=c++11)
add_library(v_repExtRosBridge SHARED ${SRCS})
target_link_libraries(v_repExtRosBridge ${catkin_LIBRARIES})
SET_TARGET_PROPERTIES(v_repExtRosBridge PROPERTIES COMPILE_FLAGS "-fopenmp")
#install(TARGETS v_repExtRosBridge
#ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
#LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
#RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
#)
#install(TARGETS v_repExtRosBridge LIBRARY DESTINATION ${VREP_ROOT_DIR})
#install(TARGETS v_repExtTeleKyb LIBRARY DESTINATION "./" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
通过以上步骤,应该可以保证catkin_make通过。
后面的步骤按照官网的说法,可以成功。就是需要把编译出来libv_repExtRosBridge.so文件拷贝到Vrep的安装目录下。我的目录是/home/username/V-REP_PRO_EDU_V3_6_2_Ubuntu16_04/。
最后通过Terminal启动vrep。会看到如下提示信息表示已经成功加载。
Plugin 'RosBridge': loading...
-------------------------------------------------------------------
Available ObjectHandlers:
CameraHandler
ContactHandler
DrawLineHandler
DrawMeshHandler
Force_sensorHandler
GetPoseHandler
GetTwistHandler
ImuHandler
ManipulatorHandler
QuadrotorHandler
SetTwistHandler
Plugin 'RosBridge': load succeeded.