Skip to content

minhanghuang/CyberRT

Repository files navigation

Apollo(v9.0.0) CyberRT

CyberRT

Target CI Status
Ubuntu18.04 x86_64 build v9.0.0
Ubuntu20.04 x86_64 build v9.0.0
Ubuntu22.04 x86_64 build v9.0.0
Ubuntu24.04 x86_64 build v9.0.0
Ubuntu latest x86_64 build v9.0.0
Ubuntu18.04 arrch64 build v9.0.0
Ubuntu20.04 arrch64 build v9.0.0
Ubuntu22.04 arrch64 build v9.0.0
Ubuntu latest arrch64 build v9.0.0

#1 Env

dependence

sudo apt update
sudo apt install -y uuid-dev libncurses5-dev python3-dev python3-pip
python3 -m pip install protobuf==3.14.0

#2 Build

  1. clone
git clone --single-branch --branch v9.0.0 https://github.com/minhanghuang/CyberRT.git
cd CyberRT
  1. build third party

install

python3 install.py
# python3 install.py --platform <your-platform-machine> --install_prefix <your-install-path>

export path

source install/setup.bash
  1. build cyber
mkdir build && cd build
cmake ..
make -j$(nproc)

#3 Examples

  1. pub/sub

talker

source setup.bash
./cyber/examples/cyber_example_talker

listener

source setup.bash
./cyber/examples/cyber_example_listener
  1. component
source setup.bash
cyber_launch start share/examples/common_component_example/common.launch
./cyber/examples/common_component_example/channel_prediction_writer
./cyber/examples/common_component_example/channel_test_writer
  1. log directory(optional)

The Cyber log storage path is similar to ROS and is saved in ~/.cyber/log

If you want to modify the log storage path, you can change the GLOG_log_dir environment variable as follows:

# export GLOG_log_dir=/path/to/cyber/log

#4 Tools

  1. channel

list

source setup.bash
cyber_channel list

# The number of channels is:  1
# /apollo/test

echo

source setup.bash
cyber_channel echo /apollo/test

example

more ...

Commands:
	cyber_channel list	list active channels
	cyber_channel info	print information about active channel
	cyber_channel echo	print messages to screen
	cyber_channel hz	display publishing rate of channel
	cyber_channel bw	display bandwidth used by channel
	cyber_channel type	print channel type
  1. node
Commands:
	cyber_node list 	List active nodes.
	cyber_node info 	Print node info.
  1. service
Commands:
	cyber_service list	list active services
	cyber_service info	print information about active service
  1. launch
cyber_launch start share/examples/common_component_example/common.launch
  1. monitor
cyber_monitor
  1. recorder
Commands:
  	cyber_recorder info	Show information of an exist record.
	cyber_recorder play	Play an exist record.
	cyber_recorder record	Record same topic.
	cyber_recorder split	Split an exist record.
	cyber_recorder recover	Recover an exist record.

#5 Packages

cmake -DCMAKE_INSTALL_PREFIX=/you/install/path ..
make -j$(nproc)
make package
sudo dpkg -i package/*.deb
# CMakeLists.txt
find_package(PkgConfig REQUIRED)
pkg_check_modules(Cyber REQUIRED cyber)
include_directories(
  ${Cyber_INCLUDE_DIRS}
)
link_directories(${Cyber_LIB_DIRS})
target_link_libraries(${TARGET_NAME}
  ${Cyber_LIBRARIES}
)