IR-SIM
robot_nav.sim
SIM_ENV
A simulation environment interface for robot navigation using IRSim.
This class wraps around the IRSim environment and provides methods for stepping, resetting, and interacting with a mobile robot, including reward computation.
Attributes:
Name | Type | Description |
---|---|---|
env |
object
|
The simulation environment instance from IRSim. |
robot_goal |
ndarray
|
The goal position of the robot. |
Source code in robot_nav/sim.py
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
|
__init__(world_file='robot_world.yaml', disable_plotting=False)
Initialize the simulation environment.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
world_file
|
str
|
Path to the world configuration YAML file. |
'robot_world.yaml'
|
disable_plotting
|
bool
|
If True, disables rendering and plotting. |
False
|
Source code in robot_nav/sim.py
21 22 23 24 25 26 27 28 29 30 31 |
|
cossin(vec1, vec2)
staticmethod
Compute the cosine and sine of the angle between two 2D vectors.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vec1
|
list
|
First 2D vector. |
required |
vec2
|
list
|
Second 2D vector. |
required |
Returns:
Name | Type | Description |
---|---|---|
tuple |
(cosine, sine) of the angle between the vectors. |
Source code in robot_nav/sim.py
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
|
get_reward(goal, collision, action, laser_scan)
staticmethod
Calculate the reward for the current step.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
goal
|
bool
|
Whether the goal has been reached. |
required |
collision
|
bool
|
Whether a collision occurred. |
required |
action
|
list
|
The action taken [linear velocity, angular velocity]. |
required |
laser_scan
|
list
|
The LIDAR scan readings. |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
Computed reward for the current state. |
Source code in robot_nav/sim.py
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
|
reset(robot_state=None, robot_goal=None, random_obstacles=True, random_obstacle_ids=None)
Reset the simulation environment, optionally setting robot and obstacle states.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
robot_state
|
list or None
|
Initial state of the robot as a list of [x, y, theta, speed]. |
None
|
robot_goal
|
list or None
|
Goal state for the robot. |
None
|
random_obstacles
|
bool
|
Whether to randomly reposition obstacles. |
True
|
random_obstacle_ids
|
list or None
|
Specific obstacle IDs to randomize. |
None
|
Returns:
Name | Type | Description |
---|---|---|
tuple |
Initial observation after reset, including LIDAR scan, distance, cos/sin, and reward-related flags and values. |
Source code in robot_nav/sim.py
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
|
step(lin_velocity=0.0, ang_velocity=0.1)
Perform one step in the simulation using the given control commands.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
lin_velocity
|
float
|
Linear velocity to apply to the robot. |
0.0
|
ang_velocity
|
float
|
Angular velocity to apply to the robot. |
0.1
|
Returns:
Name | Type | Description |
---|---|---|
tuple |
Contains the latest LIDAR scan, distance to goal, cosine and sine of angle to goal, collision flag, goal reached flag, applied action, and computed reward. |
Source code in robot_nav/sim.py
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
|