1. install dependencies
sudo apt-get install uuid-dev libboost-all-dev libpoco-dev libgoogle-glog-dev python-dev python-setuptools python-pip sudo dpkg -i bros_1. 3 .0_amd64.deb cmake_3. 15 .4_amd64.deb cyber-bzl_5. 0 .0_amd64.deb fastrtps bzl_1. 5 .0_amd64.deb protobuf bzl_3. 6 .1_amd64.deb
sudo python easy_install protobuf-3.6.1-py2.7.egg
easy_install
#!/usr/bin/python # EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==20.7.0','console_scripts','easy_install' __requires__ = 'setuptools==20.7.0' import sys from pkg_resources import load_entry_point if __name__ == '__main__': sys.exit( load_entry_point('setuptools==20.7.0', 'console_scripts', 'easy_install')() )
2. Building
Open a terminal
Protobuf did not test the installation was successful:
protoc --version
libprotoc 3.6.1
libprotobuf.so-> libprotobuf.so.3.6.1
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH cd examples mkdir build cd build cmake ../ -DCMAKE_PREFIX_PATH=/opt/bros make
3. Run
/opt/cyber/setup.bash . / Talker run talker # . / Listener running listener #
4. Use action
# Use Action Copy examples / fibonacci.proto in proto directory instead bring your own Action protobuf file name, such as TestAction.proto Only modify Goal, Result and Feedback section, the other not to move ```proto syntax = "proto2"; Fibonacci the Message // here into your own as TestAction { // App Definition the Message. Goal { // This part of your own Goal changed the definition required the Order Int32 = 1 ; } message Result { // This part of your Result changed the definition of a REPEATED Int32 Sequence = 1 ; } message Feedback { // This part of your Feedback changed the definition of a REPEATED Int32 Sequence = 1 ; } // Impl definition message Impl { // Common message Time { required int32 sec = 1; required uint32 nanosec = 2; } message GoalInfo { required bytes goal_id = 1; required Time stamp = 2; } message GoalStatus { required GoalInfo goal_info = 1; required int32 status = 2; } // Goal Service message SendGoalService { message Request { required bytes goal_id = 1; required Goal goal = 2; } message Response { required Time stamp = 1; required bool accepted = 2; } } // CancelGaol service message CancelGoalService { message Request { required GoalInfo goal_info = 1; } message Response { required int32 return_code = 1; } } // Result Service message GetResultService { message Request { required bytes goal_id = 1; } message Response { required bytes goal_id = 1; required int32 status = 2; required Result result = 3; } } // Feedback publisher message FeedbackMessage { required bytes goal_id = 1; required Feedback feedback = 2; } // GoalStatus publisher message GoalStatusMessage { repeated GoalStatus status_list = 1; } } } ```