# 安裝 slam
### Set Up a Catkin Workspace and Install RPLIDAR ROS Packages
1. Update the package list
```
sudo apt-get update
```
2. Install the following dependencies
```
sudo apt-get install cmake python-catkin-pkg python-empy python-nose python-setuptools libgtest-dev python-rosinstall python-rosinstall-generator python-wstool build-essential git
```
3. Create the catkin workspace
```
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
```
4. edit the .bashrc text file
```
gedit ~/.bashrc
```
:::info
```
sudo apt-get install gedit
```
:::
5. Make sure these two lines are at the end of the .bashrc file
```
source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash
```
6. Save the file, and close it
```
source ~/catkin_ws/devel/setup.bash
cd src
```
7. Clone the RPLIDAR and go to the root of the workspace
```
sudo git clone https://github.com/Slamtec/rplidar_ros.git
cd ~/catkin_ws/
catkin_make
```
8. change error
```
cd ~/catkin_ws/src/rplidar_ros/src
sudo chmod +x node.cpp
sudo gedit node.cpp
```
- chage this
- ROS_INFO("RPLIDAR running on ROS package rplidar_ros. SDK Version:"RPLIDAR_SDK_VERSION"");
- to this
- ROS_INFO("RPLIDAR running on ROS package rplidar_ros. SDK Version:" RPLIDAR_SDK_VERSION "");
9. Go to the root of the workspace and compile workspace
```
cd ~/catkin_ws/
catkin_make
```
10. Launch the RPLIDAR launch file
```
roslaunch rplidar_ros rplidar.launch
rostopic list
```
11. see LIDAR data
```
rostopic echo /scan
```
### Run rviz
1. Launch RPLIDAR
```
roslaunch rplidar_ros rplidar.launch
```
2. launch rviz
```
rviz
```
### Download the Hector-SLAM Package
1. Move to your catkin workspace’s source folder
```
cd ~/catkin_ws/src
```
2. download the Hector-SLAM package
```
git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git
```
3. Go to the launch file for Hector-SLAM. All of this below is a single command
```
sudo gedit ~/catkin_ws/src/hector_slam/hector_mapping/launch/mapping_default.launch
```
- change this
```
<arg name="base_frame" default="base_footprint"/>
<arg name="odom_frame" default="nav"/>
```
- to this
```
<arg name="base_frame" default="base_link"/>
<arg name="odom_frame" default="base_link"/>
```
- change this
```
<!--<node pkg="tf" type="static_transform_publisher" name="map_nav_broadcaster" args="0 0 0 0 0 0 map nav 100"/>-->
```
- to this
```
<node pkg="tf" type="static_transform_publisher" name="base_to_laser_broadcaster" args="0 0 0 0 0 0 base_link laser 100"/>
```
4. Type the following command
```
cd ~/catkin_ws/src/hector_slam/hector_slam_launch/launch
```
5. Open the tutorial.launch file
```
gedit tutorial.launch
```
- change this
```
<param name="/use_sim_time" value="true"/>
```
- to this
```
<param name="/use_sim_time" value="false"/>
```
6. Save the file, and close it
```
cd ~/catkin_ws/
catkin_make
```