1. 程式人生 > >Bullet3-2.87在Ubuntu16.04下原始碼編譯安裝

Bullet3-2.87在Ubuntu16.04下原始碼編譯安裝

編譯安裝Bullet3-2.87

安裝過程其實很簡單,有多重原始碼安裝方法,這裡提供兩種:
方法1:

cd bullet3-2.87
mkdir build && cd build
cmake ..
make
sudo make install

方法2:

cd bullet3-2.87
./build_cmake_pybullet_double.sh

編寫一個Bullet版本的Hello World,驗證安裝是否正確

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project(01_bullet)
find_package
(Bullet REQUIRED) include_directories(${BULLET_INCLUDE_DIR}) set(TARGET_LIB "/usr/local/lib/libBulletDynamics.so" "/usr/local/lib/libBulletCollision.so" "/usr/local/lib/libLinearMath.so") add_executable(${PROJECT_NAME} "main.cpp") target_link_libraries(${PROJECT_NAME} ${TARGET_LIB})

main.cpp

#include <iostream>
#include <btBulletDynamicsCommon.h> int main (void) { btBroadphaseInterface* broadphase = new btDbvtBroadphase(); btDefaultCollisionConfiguration* collisionConfiguration = new btDefaultCollisionConfiguration(); btCollisionDispatcher* dispatcher = new btCollisionDispatcher(collisionConfiguration); btSequentialImpulseConstraintSolver* solver = new
btSequentialImpulseConstraintSolver; btDiscreteDynamicsWorld* dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration); dynamicsWorld->setGravity(btVector3(0, -10, 0)); btCollisionShape* groundShape = new btStaticPlaneShape(btVector3(0, 1, 0), 1); btCollisionShape* fallShape = new btSphereShape(1); btDefaultMotionState* groundMotionState = new btDefaultMotionState(btTransform(btQuaternion(0, 0, 0, 1), btVector3(0, -1, 0))); btRigidBody::btRigidBodyConstructionInfo groundRigidBodyCI(0, groundMotionState, groundShape, btVector3(0, 0, 0)); btRigidBody* groundRigidBody = new btRigidBody(groundRigidBodyCI); dynamicsWorld->addRigidBody(groundRigidBody); btDefaultMotionState* fallMotionState = new btDefaultMotionState(btTransform(btQuaternion(0, 0, 0, 1), btVector3(0, 50, 0))); btScalar mass = 1; btVector3 fallInertia(0, 0, 0); fallShape->calculateLocalInertia(mass, fallInertia); btRigidBody::btRigidBodyConstructionInfo fallRigidBodyCI(mass, fallMotionState, fallShape, fallInertia); btRigidBody* fallRigidBody = new btRigidBody(fallRigidBodyCI); dynamicsWorld->addRigidBody(fallRigidBody); for (int i = 0; i < 300; i++) { dynamicsWorld->stepSimulation(1 / 60.f, 10); btTransform trans; fallRigidBody->getMotionState()->getWorldTransform(trans); std::cout << "sphere height: " << trans.getOrigin().getY() << std::endl; } dynamicsWorld->removeRigidBody(fallRigidBody); delete fallRigidBody->getMotionState(); delete fallRigidBody; dynamicsWorld->removeRigidBody(groundRigidBody); delete groundRigidBody->getMotionState(); delete groundRigidBody; delete fallShape; delete groundShape; delete dynamicsWorld; delete solver; delete collisionConfiguration; delete dispatcher; delete broadphase; return 0; }

輸出結果為:

sphere height: 50
sphere height: 49.9972
sphere height: 49.9917
sphere height: 49.9833
sphere height: 49.9722
sphere height: 49.9583
sphere height: 49.9417
sphere height: 49.9222
...
...
...

相關推薦

Bullet3-2.87在Ubuntu16.04原始碼編譯安裝

編譯安裝Bullet3-2.87 安裝過程其實很簡單,有多重原始碼安裝方法,這裡提供兩種: 方法1: cd bullet3-2.87 mkdir build && cd build cmake .. make sudo make ins

ubantu16.04原始碼編譯安裝tensorflow

Ubuntu16.04原始碼編譯安裝CPU版本的tensorflow 安裝說明:本教程針對tensorflow原始碼編譯安裝cpu版本,參考於tensorflow官網 安裝環境說明: os:Ubuntu 16.04 arch:x86_64 tensorflow版本:1.0.

Ubuntu 18.04.1原始碼編譯安裝OpenJDK8

自己編譯個JDK來提升對JVM的興趣。本文分三部分來描述編譯OpenJDK的過程,分別是編譯前準備工作、構建編譯環境、進行編譯,在這三部分內容中順帶把趟的坑一起說明下。 一、編譯前準備工作 1.1 安裝Linux環境 https://askubuntu.com/questions/107059

Linux原始碼編譯安裝mariadb資料庫

環境:centos7 準備:mariadb-10.2.18.tar 資料庫安裝包 [[email protected] ~]# rz Transferring mariadb-10.2.18.tar.gz... 第一步: 建立mysql使用者 [[email 

01-postgres9.4.5在redhat6.5環境原始碼編譯安裝(2016-11-08)

0讀者須知 1安裝redhat65 2更改本地yum源 4解壓postgres 5安裝依賴包 6增加使用者設定密碼 7開始編譯和安裝postgres 8設定環境變數 9初始化資

Node--Ubuntu原始碼編譯安裝Node.js(時間比較長)

一.下載地址 下載地址:https://nodejs.org/en/download/ 二.下載原始碼 [email protected]:~# cd /usr/local/src/ [email protected]:/usr/local/src# wget

Linux原始碼編譯安裝Redis和部署

    redis是一個 鍵值 (Key—Value)型別 記憶體資料庫 ,所有的操作都是在記憶體中進行。然後定期地通過非同步操作將資料庫的資料flush到硬碟上。由於是記憶體操作,所以效能非常的出色。但是容易受實體記憶體的影響,如果是海量

Linux原始碼編譯安裝Mysql

 下面是在redhat 5.8下原始碼編譯安裝mysql5.6.12  1. 首先檢視系統有沒有安裝Mysql  # rpm -qa |grep mysql    如果系統上有Mysql,先解除安裝  # yum remove mysql 或者 # rpm -e my

Linux原始碼編譯安裝詳解

前言 原始碼要執行,必須先轉成二進位制的機器碼。這是編譯器的任務。 比如,下面這段原始碼(假定檔名叫做test.c)。 #include <stdio.h> int main(void) {   fputs("Hello, world!\n", stdout

Linux原始碼編譯安裝Python3

作業系統:Centos 下載原始碼包 下載地址 https://www.python.org/downloads/release/python-365/ 解壓 # tar -zxvf Python-3.6.5.tgz 安裝需要的依賴 # yum -y instal

ubuntu 14.04原始碼編譯安裝php7

wget https://downloads.php.net/~ab/php-7.0.0alpha2.tar.bz2 //用winscp把下載好的檔案上傳到網站中 tar jxf php-7.0.0alpha2.tar.bz2 安裝: sudo apt-get upda

[環境配置]Ubuntu 16.04 原始碼編譯安裝OpenCV-3.2.0+OpenCV_contrib-3.2.0及產生的問題

1.OpenCV-3.2.0+OpenCV_contrib-3.2.0編譯安裝過程 1)下載官方要求的依賴包 GCC 4.4.x or later CMake 2.6 or higher Git GTK+2.x or higher, including headers (libgtk2.

保姆級教程——Ubuntu16.04 Server深度學習環境搭建:安裝CUDA8.0,cuDNN6.0,Bazel0.5.4,原始碼編譯安裝TensorFlow1.4.0(GPU版)

寫在前面 本文敘述了在Ubuntu16.04 Server下安裝CUDA8.0,cuDNN6.0以及原始碼編譯安裝TensorFlow1.4.0(GPU版)的親身經歷,包括遇到的問題及解決辦法,也有一些自己的經驗,希望能對讀者有所幫助。期間參考了許多前人的文章,後文會一一附上鍊接,在此先行謝過。在下能力有限,

ubuntu16.04源碼安裝onos1.0.2

版本選擇 ash tool lean 相同 3.2 鏈接 com 但是 由於工作需要,下載安裝onos1.0.2的版本,大家看需求可以下載安裝更高級的版本 參考鏈接:http://www.sdnlab.com/14650.html 1.系統環境 Ubuntu16.04 LT

ubuntu16.04的htk安裝編譯

HTK(HMM Tools Kit)是一個劍橋大學開發的專門用於建立和處理HMM的實驗工具包[1],主要應用於語音識別領域,也可以應用於語音合成、字元識別和DNA排序等領域。HTK經過劍橋大學、Entropic公司及Microsoft公司的不斷增強和改進,使其在語音識別領域處於世界領先水平,另外,HTK還是一

Ubuntu18.04基於 Anaconda3 安裝編譯 Caffe-GPU(超詳細)

寫這篇部落格的時候已經不知道是第幾次安裝caffe了,每次安裝都會遇到不同的問題,有時候解決報錯真的是接近崩潰的邊緣,故將遇到的問題及解決方法整理。也綜合了以前的多次安裝方法,寫了Ubuntu18.04上基於 Anaconda3 安裝編譯 Caffe-GPU的詳細教程。由於教程之詳細,

原始碼編譯安裝Apache/2.4.37-------踩了無數坑,重灌了十幾次伺服器才會的,不容易啊!

1.先進入/usr/local/中建立三個資料夾 apr apr-util apache cd /usr/local目錄 mkdir apr  mkdir apr-util  mkdir apache 2.再進入 src中  cd src   

深度學習入門:詳解 Ubuntu PaddlePaddle 原始碼編譯安裝

PaddlePaddle 是百度開源的一個深度學習框架,Paddle 提供的 Paddle book 對於那些深度學習入門的人簡直再方便不過。 想用 Paddle 進行模型訓練必然先進行安裝,這篇文章主要詳細的記錄一下 Paddle cpu 和 gpu 的原始碼編譯安裝。 個人認為原始

linux【centos】nginx自動原始碼編譯安裝指令碼,以及通過service 啟動/停止/過載 nginx的服務指令碼

 第一:指令碼為nginx原始碼編譯安裝的指令碼,可以幫助使用者自動建立系統使用者“nginx”;可以使用者自己指定安裝路徑,配置檔案路徑,執行檔案路徑等; 第二:可以配置第二個指令碼使用,通過service服務來管理nginx。 [[email protect

centos7原始碼編譯方式安裝httpd

參考文章 http://www.cnblogs.com/jipeng87/p/6308725.html http://www.centoscn.com/CentosServer/www/2015/0417/5204.html 前言 Apache至少需要apr、apr-