Add debug tips to README.md (#137)
This commit is contained in:
		
							parent
							
								
									a1d05fdf56
								
							
						
					
					
						commit
						073d21ab8f
					
				
					 1 changed files with 42 additions and 10 deletions
				
			
		
							
								
								
									
										52
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										52
									
								
								README.md
									
										
									
									
									
								
							|  | @ -7,23 +7,55 @@ Cyclone DDS is ready to use. It seeks to give the fastest, easiest, and most rob | |||
| 
 | ||||
| 1. Install: | ||||
| 
 | ||||
|   ``` | ||||
|   apt install ros-eloquent-rmw-cyclonedds-cpp | ||||
|   ``` | ||||
|   or | ||||
|   ``` | ||||
|   apt install ros-dashing-rmw-cyclonedds-cpp | ||||
|   ``` | ||||
|    ``` | ||||
|    apt install ros-eloquent-rmw-cyclonedds-cpp | ||||
|    ``` | ||||
|    or | ||||
|    ``` | ||||
|    apt install ros-dashing-rmw-cyclonedds-cpp | ||||
|    ``` | ||||
| 
 | ||||
| 2) Set env variable and run ROS2 apps as usual: | ||||
| 2. Set env variable and run ROS2 apps as usual: | ||||
| 
 | ||||
|   ```export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp``` | ||||
|    ```export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp``` | ||||
| 
 | ||||
| 3) Confirm RMW: In Eloquent, to confirm which RMW you're using: | ||||
| 3. Confirm RMW: In Eloquent and later, to confirm which RMW you're using: | ||||
| 
 | ||||
|    ```ros2 doctor --report``` | ||||
| 
 | ||||
| 
 | ||||
| ## Performance recommendations | ||||
| 
 | ||||
| With large samples (100s of kilobytes), excessive latency can be caused by running out of space in the OS-level receive buffer. For this reason, on Linux, we recommend increasing the buffer size: | ||||
| * Temporarily (until reboot): `sudo sysctl -w net.core.rmem_max=8388608 net.core.rmem_default=8388608` | ||||
| * Permanently: `echo "net.core.rmem_max=8388608\nnet.core.rmem_default=8388608\n" | sudo tee /etc/sysctl.d/60-cyclonedds.conf` | ||||
| 
 | ||||
| ## Debugging | ||||
| 
 | ||||
| So Cyclone isn't playing nice or not giving you the performance you had hoped for? That's not good... Please [file an issue against this repository](https://github.com/ros2/rmw_cyclonedds/issues/new)! | ||||
| 
 | ||||
| The `ddsperf` tool distributed with Cyclone DDS can be used to check that communication works *without* ROS. Run `ddsperf sanity` on two different machines - if the "mean" value is above `100000us`, there are likely network issues. | ||||
| 
 | ||||
| If you're having trouble with nodes discovering others or can't use multicast *at all* on your network setup, you can circumvent discovery: | ||||
| 
 | ||||
|   `export CYCLONEDDS_URI='<Discovery><Peers><Peer Address='myroshost.local' /><Peer Address='myroshost2.local' /></></>'` | ||||
| 
 | ||||
| Here are some ways to generate additional debugging info that can help identify the problem faster, and are helpful on an issue ticket: | ||||
| 
 | ||||
| * Configure Cyclone to create richer debugging output: | ||||
| 
 | ||||
|   * To see the output live: | ||||
|      | ||||
|     `export CYCLONEDDS_URI='<Tracing><Verbosity>trace</><Out>stderr</></>'` | ||||
| 
 | ||||
|   * To send to `/var/log/`: | ||||
|      | ||||
|     `export CYCLONEDDS_URI='<Tracing><Verbosity>trace</><Out>/var/log/cyclonedds.${CYCLONEDDS_PID}.log</></>'` | ||||
| 
 | ||||
| * Create a Wireshark capture: | ||||
|    | ||||
|   `wireshark -k -w wireshark.pcap.gz` | ||||
| 
 | ||||
| ## Building from source and contributing | ||||
| 
 | ||||
| The following branches are actively maintained: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Rose
						Dan Rose